perm filename SUAI.TEX[TEX,ALS]1 blob
sn#560184 filedate 1981-01-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00011 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 \input kermac.tex
C00006 00003 %%% the first page:
C00009 00004 % text commences
C00021 00005 \sectionbegin{Log-In and Log-Out}
C00034 00006 \sectionbegin{Editors}
C00047 00007 \sectionbegin{Files and File Directories}
C00080 00008 \sectionbegin{HELP and READ HOW to learn all about it}
C00085 00009 \sectionbegin{System Programs}
C00134 00010 \sectionbegin{Document Compilers}
C00150 00011 \titlepage
C00169 ENDMK
C⊗;
\input kermac.tex
\input papmac
% \input macmac
% \input codmac
\magnify{1100}
% To print key names etc. in eightpoint type.
\def\<#1>{{\:m <#1>}\¬}
\def\te{\:a}
\def\ni{\:b}
\def\ei{\:m}
\def\se{\:d}
\def\si{\:c}
\def\s8{\:p}
% Change formats:
\def\sectionbeginb#1#2{\addq1{\varsec}
\sectiondeclare{\tit\hangindent4.5em\sectionnum.\ \ #1\¬
}{\sectionnum\hquad #2
}{\sectionnum\hquad #2} }
\def\subsectionbeginb#1#2{\addq1{\varssec}
\subsectiondeclare{\tenpoint\bf\hangindent4.5em\subsecnum\hquad\rm #1
}{\subsecnum\hquad #2}}
% Modified to moveright the even pages only with hshft set to .45
\def\shftthepage#1{
\ddvnmsel{\moveright\hshft truein\thevbox{#1}}{\thevbox{#1}} }
% To produce special TEX printing and imitations
\def\TEX{\hbox{\:aT\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}
\def\DEK{\hbox{\:aD\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em K}}
\def\MAX{\hbox{\:aM\hskip-.2000em\lower.424ex\hbox{A}\hskip-.200em X}}
% Initializations
\def\projname{Short WAITS}
\def\date{January 27, 1981}
% Set parameters to taste:
\parskip .1in
\parindent 0pt
\def\hshft{.45}
% To change spacing on contents page
\def\hdltopskip{-0.05in}
\def\hdlbtmskip{0.10vu plus 2pt}
% To change table of contents to eightpoint
\let\tofctypeface=\ninepoint
\secsubsecstyle
%%% the first page:
\titlepage
\ctrcol{\ninepoint\cr
\halskip{.75vu}{\Tit \projname}\cr
\halskip{1.5vu}by\cr Arthur Samuel}
\vfill
\ctrcol{\ninepoint
Computer Science Department\cr\halskip{5pt}
Stanford University\cr\halskip{3pt}
\date}
\eject
%%% abstract begins:
\titlepage
\ctrcol{\cr\halskip{.5vu}{\Tit\projname}\cr
\halskip{.5vu}Abstract}
This is an introductory manual describing the {\ei SU-AI} timesharing
system that is available primarily for sponsored research in the Computer
Science Department. The present manual is written for the beginner and
the user interested primarily in the message handling capability as well
as for the experienced computer user and programmer who either is
unfamiliar with the {\ei SU-AI} computer or who uses it infrequently.
References are made to the available hard-copy manuals and to the
extensive on-line document files where more complete information can be
obtained.
The principal advantages of this system are:
1) The availability of a large repertoire of useful system features;
2) The large memory;
3) The large file storage system;
4) The ease with which one can access other computers via the {\ei ARPA} net;
5) The file transfer facilities via the {\ei EFTP} program and the {\ei ETHERNET};
6) The {\ei XGP} and the {\ei DOVER} printers and the large collections
of fonts available for them; and
7) The fast and convenient E editor with its macro facilities.
\endpage
% text commences
\arabicnumbering{1}
\titlepage
\ctrcol{\cr\halskip{.5vu}{\Tit\projname}\cr
\halskip{.25vu}\null}
\appsectionbegin{Introduction}
This is an introductory manual to the {\ei WAITS} operating system and to
the {\ei SU-AI} time-sharing computer, intended for the beginner and as a
ready reference to the more complete documentation available elsewhere.
Especial attention is given to the message handling facilities and to the
commands and programs that are generally useful in the writing and
handling of letters, texts, documents and files of all sorts and in the
preparation, compiling and execution of computer programs. A companion
manual, Essential E, CSD Report STAN-CS-80-796, describes the most
commonly used text editor and is recommended as collateral reading.
Much of the material referenced in this manual is covered in greater
detail in the Monitor Command Manual, Stanford Artificial Intelligence
Laboratory, Operating Note 54.6. This may be read on-line by typing {\ei
READ MONCOM<CR>}. Update information is available by typing {\ei READ
MONCOM.UPD<CR>}. Additional documentation is available on-line in many
individual files, both with respect to the matters covered in this manual
and on the many other facilities available on the system, such as
compilers for all of the more commonly used computer languages (as well as
for the newer ones currently under development), cross compilers,
assembliers, packages of mathematical routines, sorting and merging
routines, etc.. A partial list of this on-line documentation is given in
Appendix H. Ready reference to this material is available through the
mechanism of the {\ei HELP} command as described below. Lists of the
hard-copy Artificial Intelligence Laboratory Memoranda may be read on-line
by typing {\ei READ AIMLST<CR>} and of the Operating Notes by typing {\ei
READ SAILON<CR>} although too much reliance should not be given to these older
reports as they tend to become obsolete in a very short period of time.
The {\ei SU-AI} computer with its {\ei WAITS} operating system and the associated
large, and well integrated, file system is used primarily for sponsored research.
Before you use the {\ei SU-AI} computer you should make arrangements for
authorization. You will be assigned some disk space to store your
personal files and you will be assigned a Programmer Name which can
usually be your initials or a 3-letter nickname. If you intend to work
from a remote terminal, you will also need a password. If at all
possible, you should begin your experience with this system using a
DataDisc terminal and this manual will assume that you do.
Details as to the method of obtaining authorization may be read from any
DataDisc terminal (even without being logged in) by typing {\ei HELP
LOGIN<CR>}.
\sectionbegin{Your Computer Terminal}
There are several types of terminals currently in use on the {\ei SU-AI} computer
and they differ principally in regard to the number, names, and uses of
the special keys that distinguish a computer terminal from a
typewriter. The use of a DataDisc or DataDisc-compatible terminal will be
assumed in this manual.
There is one key that is common to all currently used terminals,
the \ {\ei CALL} \ key,
and it is usually located on the far upper right. This key is used
to call the system monitor. You will be interacting with the monitor when
you first sit down at a terminal and whenever it prompts you by displaying
a period at the beginning of a line. If the system does not print a
period or if it simply fails to respond, then you may have to strike the
{\ei CALL} key (once or twice) to call the monitor. There are more graceful
ways of getting back to the system monitor that you will learn in time,
but the {\ei CALL} key is always the Key of Last Resort.
You should note that there is a full set of keys for the numerals and,
specifically, that the letter ``l'' is not used for the numeral ``1'' and
the letter ``O'' is not used for the numeral ``0''. {\ei Confusing, isn't it?}
There is, of course,
the usual space bar and there is a carriage return key (usually marked
{\ei RETURN}) that has some special functions. We will call this key the
{\ei CR} key. Then there are a number of other keys that are not the same on
different types of terminals, as will be explained below.
You may have noted the use of capitals in referring to the named keys on
the keyboard. This convention will be used throughout this manual. When there
might be danger of confusing the name of the key with text that is to be typed,
the key's name will be shown in angle brackets, thus, \<CR>.
\subsectionbegin{The DataDisc Keyboard}
This explanation will be easier to understand if you are
at a DataDisc terminal as you read it.
In the first place, most of the keys carry two symbols
and there are two different shift keys (and actually two
of each kind), one kind marked {\ei SHIFT} to get upper-case letters and
the other kind marked {\ei TOP} to type the additional characters that
are shown on the tops of the keys, i.e., above the main typewriter characters.
Then there are a number of unusual keys such as the {\ei
ESC, FORM, VT, BS, LINE} and {\ei ALT} keys. These are all very useful
but you can ignore them for the moment. You may need to use some of the
remaining special keys even to log-in.
The {\s8 CONTROL} and the {\s8 META} keys (and there are two of each) are
shift keys in that they are held down while other keys are struck. They
transform the meaning of the struck keys into commands, a Monitor command
if you are typing to the System Monitor, an E command if typing to the E
editor, etc.. In the text that follows, when a key is to be struck with
one of these two keys held down, this will be indicated by having the word
{\s8 CONTROL} or {\s8 META}, in angle brackets and italicize, thus, {\s8
<CONTROL>} or {\s8 <META>}, just before the designated key symbol (or
name) and it will apply to this one key stroke {\sl only}.
If the system (or any other program, for that matter) is typing
information (and scrolling it) faster than you want to read it, type
{\s8 <CONTROL>}{\ei <BREAK>}, that is, depress and hold the {\s8 CONTROL} key
while you strike the {\ei BREAK} key. The typeout will be interrupted
and the following legend will appear at the top of your screen:
\par
{\tt\hmode\nofill
\ \ \ \ \ \ ************ →HOLDING← ************
}\par
Typing {\s8 <CONTROL>}\<CLEAR>, that is, holding the {\s8 CONTROL} key and
striking the {\ei CLEAR} key, permits the typeout to resume.
The {\ei BREAK} and {\ei CLEAR} keys when used without the {\s8 CONTROL}
key have quite different meanings. The {\ei CLEAR} key, in particular,
is useful for deleting an entire line of text that you have typed in
error.
\subsectionbegin{Other Keyboards}
A number of other types of keyboards are currently being used; some, such
as the earlier DataMedia keyboard, do not have a {\s8 META} key and have
an {\s8 EDIT} key that is used to replace the {\s8 CONTROL} key. If you
are planning to use one of these, it might be well for you to seek some
personal advice as to how to proceed.
\sectionbegin{Log-In and Log-Out}
If you plan to use a DataDisc terminal, your first task will be to find a
DataDisc terminal that is free, as evidenced by the following legend on the screen:
\par
{\tt\hmode\nofill
\ \ \ \ \ \ TAKE ME I'M YOURS!
}\par
There will be some other information that need not concern you for the
moment. Occasionally you will find that someone's work is appearing on the
screen even though no one is actually sitting at the terminal. There are
ways to displace the remote user but, until you are quite familiar with
what you are doing, it might be wise to find another terminal.
During busy times, and this means most afternoons, you may see something like:
\par
{\tt\hmode\nofill
\ \ \ Q: 115 No DD channels left; type ESC CALL to wait for one.
}\par
This means that the maximum permitted number of DataDisc terminals are in use.
Should this be the case you can reserve a place in the queue by striking
the {\ei ESC} key followed by the {\ei CALL} key. The number of your
terminal will be added to the list (after the letter Q). When your turn
comes, your screen will go blank and you will hear a beep. You should
then log in without delay.
\subsectionbegin{Log-In}
You log in by typing \ \ {\tt L PRG} \ \ then a carriage return, using
the Programmer Name (in place of {\tt PRG}) that has been assigned to you. On
the DataDisc terminals the carriage return key is labelled {\ei RETURN}.
We will refer to this key frequently and we will use the abbreviation
{\ei CR} or \<CR>\ instead of the word {\ei RETURN}.
The full name for the logging-in command is \ {\ei LOGIN} \ but the
{\ei WAITS} monitor is very tolerant and allows one to truncate commands,
typing only enough letters to disambiguate the command. Also, no
distinction is normally made between upper and lower case letters, but be
careful, a few programs are not so tolerant. It happens that
two Monitor commands, namely {\ei LOGIN} and {\ei LOAD}, begin with {\ei LO},
so {\ei LO} is not an acceptable truncation while {\ei LOG} and {\ei LOA}
are. In some cases, and the Log-In command is one of these, an
initial letter is assigned, arbitrarily, to one of two or more commands
that begin with the same letter. So \ {\ei L PRG<CR>}\ \ works.
An alternate way to log in is to type \ \ {\tt L 1{\:a ,}PRG} \ \ where the
comma separating the 1 from the {\ei PRG} specifies that you want to
receive all system messages, even those you have already seen in prior sessions
and you want the monitor system to perform
those specific tasks that you have specified in a previously established
{\ei OPTION.TXT} file (to be explained below). Using a slash
separator instead of a comma (or omitting the \ 1, \ entirely, as above)
will limit the system messages to those
that are new since your last log-in. Using a period will produce a fast
log-in, with no messages and with the {\ei OPTION.TXT} file ignored.
To summarize these and other punctuation effects:
$$\vbox{\baselineskip12pt\te
\halign{\hfill #\hfill ⊗#\hfill ⊗\hfill#\hfill ⊗#\hfill\cr
Symbol⊗\hfill Meaning\hfill⊗Symbol⊗\hfill Meaning\hfill\cr
,⊗All messages, uses {\ei OPTION.TXT} ⊗/⊗New messages, uses {\ei OPTION.TXT}\cr
.⊗No messages, ignores {\ei OPTION.TXT} \ \ \ ⊗ ⊗ \ Note: {\ei L PRG} is like {\ei L 1/PRG}\cr
!⊗Password required, then like / ⊗\%⊗Sets new password, then like /\cr}}$$
The \ 1 \ in your log-in command (or the absence of anything before your
{\ei PRG}) says that you will be working on your project 1 and that most
of the files that you will want or will create will probably be in your
1,{\ei PRG} directory area. The 1 is called a PRoJect identifier ({\ei
PRJ}) and you may find it convenient to have several different {\ei PRJ}s
as you accumulate files of different sorts. Any desired string of not
over 3 alphanumeric characters can be used as a {\ei PRJ}, however,
certain system programs expect you to have the numeral 1 as an available
{\ei PRJ}. The two parts, namely {\ei PRJ} and {\ei PRG} when taken
together are frequently refered to as your {\ei PPN} (Project-Programmer
Name).
If you are required to use a password, the system will now request it. Your
password will not appear on the screen as you type it, so be careful.
If everything is in order, the system will acknowledge that you are now
logged in by typing something like the following:
\par
{\tt\hmode\nofill
\ \ \ Job 41 SU-AI WAITS 9.12/D Assembled 01/13/81
\ \ \ Wednesday 14-Jan-81 1526 74F 23C
}\par
Several messages will probably appear that will not concern you at
this time. You may want to read them anyway and practice using the
{\s8 <CONTROL>}\<BREAK>\ command to stop the typeout. Finally, the system will
type a period at the beginning of a line, which is its way of telling you
that it is now ready for your next command.
\subsectionbegin{Automatic Log-In Services}
When you log in normally (e.g. {\ei L PRG<CR>}, various optional automatic
services are available. These options are specified in an {\ei
OPTION.TXT} file. If you are a beginner, you may, if you wish, ignore the
rest of this section and work without an {\ei OPTION.TXT} file for awhile.
An {\ei OPTION.TXT} file consists of a single page with a series of
commands specifying actions that are to be taken on log-in and log-out
and in response to several other commands as will be noted later. A
simple file might containing the following:
\par
{\tt\hmode\nofill
LOGIN: NOMAIL,WHO,BEEP;
}\par
This instructs the monitor to do three things on log-in: 1) ({\ei NOMAIL})
To inform you if there is any new mail but not to ask you if you want it
displayed; 2) ({\ei WHO}) To display two lines of information at the top
of the screen (the {\ei WHO} lines); and 3) ({\ei BEEP}) To emit a beep when
the system completes any operation taking more than 15 seconds.
Many other log-in services are available. You might get an expert to help
you with this. Later, you will want to refer to Section 5.1 in the
Monitor Command Manual (available on-line by typing {\tt READ
MONCOM}\<CR>\ to the system monitor) to learn how to establish an {\ei
OPTION.TXT} file that meets your own particular needs. There is also a brief
summary file obtained by typing {\ei READ OPTION<CR>}.
\subsectionbegin{Kjob (to Log Out)}
To Log Out, you type \ {\tt K}\<CR>, that is, the letter {\tt K} followed
by a carriage return. This assumes that you are talking to the system
monitor which, as mentioned earlier, usually prints a period at the start
of a line to indicate that it is waiting for you. The system will reply
by displaying a summary of your current usage that will look something
like the following.
\par
{\tt\hmode\nofill
\ \ \ Job 41, [1,ALS] Logged off TTY72 15:25 14-Jan-81
\ \ \ 1.10 hours, console time.
\ \ \ 0.96 minutes, cpu time.
\ \ \ 143.14 pages average core.
\ \ \ Kjob
}\par
If you are using a telephone line, be sure that you clear the phone
connection properly. If you want the logout process speeded up, type
\ {\ei K/F<CR>}.
Always plan to log out as soon as possible to make space for other users.
Inactive jobs are logged out automatically after a certain period of time
so it is a good idea to save your editing before leaving your terminal
even if you plan to return shortly.
One convenience might be mentioned---to remind yourself of
something at the time of log-out, you can create a {\ei LOGOUT.MSG} file
containing a reminder message. The message will be typed back to you on
log-out and the file will be deleted.
\sectionbegin{Editors}
Editors come in two flavors. The basic editor is the System Line
Editor. You have been using this editor even as you log-in to the system.
You will be using it much of the time even when you are using the E editor,
since E actually relinquishes control to the System Line Editor for most
of the within-a-line tasks.
The next level of editors are what might be called File Editors. There
are several varieties of these, ({\ei E, SOS} and {\ei TECO}) are the best
known. E is, by far, the most popular and the use of E will be assumed in
this manual. You can use E to prepare and edit all of your files, text files,
computer programs and the source files for document compilers.
Actually, E contains some facilities for formatting text so one can, and
some people do, prepare documents with E alone.
Three document compilers are currently available on the {\ei SU-AI}
computer, as will be described in a later section. These require a
well-edited input file containing text and formatting instructions and
they produce an output file that can be sent directly to a printer.
Some of these programs permit a limited amount of operator intervention to
repair errors, but the most common way to operate is to go back to a file
editor (usually E) to edit the source file and then to reinitiate the
document compiler.
\subsectionbegin{The System Line Editor}
When you type commands to the system monitor and when you type text to the
E editor, you will be using the System Line Editor. This Line Editor is
quite special and it has many features that greatly simplify typing to the
computer as compared to typing on a typewriter. You will need to know
some of these features before proceeding.
You should first observe the {\ei CURSOR}, an underscore mark that moves
along as you type. Actually there are two underscores (unless you are
on a DM) when you are typing to the system monitor, one appearing under
the first character of the string of characters and the second that will
be one character position beyond the last character that you have typed.
This second underscore will be called the {\ei CURSOR} and it always shows
where the next typed character will appear.
A few essential Line Editor commands are:
\<BS>\ \ \ If you mistype a character, the {\ei BACKSPACE} key
(labelled {\ei BS})
can be used to erase it. Striking the {\ei BS} key repeatedly will continue to
erase characters from the end of the line. When not at the end of a line \<BS>\
behaves like {\s8 <CONTROL>}\<BS>, as described below.
{\s8 <CONTROL>}\<BS>\ \ \ If you discover a mistyped character in an earlier
portion of the line, you can move the {\ei CURSOR} back to the wrongly
typed character (without having to disturb the characters that follow) by
first depressing the {\s8 CONTROL} key and holding it down while you
strike the {\ei BS} key to get the {\ei CURSOR} back from the end of the
character string, and so to immobilize the automatic erasure feature.
Thereafter, you can strike the {\ei BS} key as many times as necessary (either
with or without holding the {\s8 CONTROL} key) to move the {\ei CURSOR}
back as far as desired. Once positioned, you need only strike the desired
key to overwrite, that is, to remove the unwanted character and to replace
it by the desired one.
{\s8 <CONTROL>}\<FORM>\ \ \ \ If you want to get back to the first character in
the line, hold the {\s8 CONTROL} key and strike the {\ei FORM} key.
Striking the {\ei FORM} key, without holding the {\s8 CONTROL} key, will
overwrite with an unwanted character.
{\s8 <CONTROL>}\<SPACE>\ \ \ If you should go too far back, you can move the
{\ei CURSOR} forward by depressing and holding the {\s8 CONTROL} key while
typing with the space bar. If you strike the space bar without holding
the {\s8 CONTROL} key, you will be overwriting the existing character at
the {\ei CURSOR} position with a space.
{\s8 <CONTROL>}\<TAB>\ \ \ Holding the {\s8 CONTROL} key and striking the
{\ei TAB} key will get you back to the end of the line. Striking the
{\ei TAB }key, without holding the {\s8 CONTROL} key, will overwrite
with a {\ei TAB}.
{\s8 <CONTROL>}D\ \ \ \ You can delete an unwanted character (and move the
rest of the line of text to close the gap) by positioning the {\ei CURSOR} under
the unwanted character and depressing and holding the {\s8 CONTROL} key while
you strike the letter D (for delete).
{\s8 <META>}<char>\ \ \ You can insert characters (and automatically move
the rest of the text along to make room), by first positioning the {\ei CURSOR}
at the position in the line where you want the character to appear. You
then depress and hold the {\s8 META} key while you type the character or
characters that are to be inserted.
\<CR>\ \ \ When you have completed a line of text or a command to
your satisfaction, you can terminate the line of text or command by simply
striking the {\ei RETURN} key without having to move the cursor to the end of
the line and the entire line will be accepted for processing. If you are using
the text editor E, a line marker in the form of an arrow will be advanced to
the next text line.
{\s8 CONTROL>}\<CR>\ \ \
If you have just completed a monitor command by typing a \<CR>\ and if the
system fails to understand your command string (or even if it executed
your command and you want to repeat the command, as is, or slightly
modified), you can retrieve the string for re-editing by typing {\s8
<CONTROL>}\<CR>. Remember, this means holding the {\s8 CONTROL} key down
while you strike the {\ei RETURN} key. This only works for the command
string that you have just terminated so don't strike any other keys before
giving this command.
The System Line Editor has many more features that you will want to
know, but these few will get you started. Fortunately, most Data Disc
terminals have a list of the line-editor commands displayed just above the
keyboard. If you would like an up-to-date copy of this list, type
\ {\ei HELP DDKEY<CR>} \ to the system monitor. The monitor will
ask for confirmation.
Terminate your Y answer with a \<CR> (the Helper doesn't tell you this).
You will be told when the {\ei XGP} starts to
print your request and you should go to room MJH 433 to get it without delay.
\subsectionbegin{The E Editor}
Your next task will be to learn how to use the E editor. You can easily do
this by a session or two with the program called {\ei ETEACH}.
Type \ {\ei HELP ETEACH}\<CR>\ \ and follow directions. This will create a
special file (appropriate to the terminal that you are using) on your
directory area. This file will instruct you and allow you to try out what
you are learning on the file itself. The file will remain in your file
area, so that you may return to it at a later time, but do
delete it when have learned enough to proceed. You do this by
typing \ {\ei DEL TEACH}\<CR>\ if you have been using a DataDisc
terminal or \ {\ei DEL TEACH.DM}\<CR>, if using a DataMedia terminal.
You will also want to get a copy of the CSD Report STAN-CS-80-796, called
{\ei ESSENTIAL E}. This is more easy to read than the comprehensive
on-line manual {\ei E.ALS[UP,DOC],} the Manual of Last Appeal. You can
refer to this on-line manual by typing \ {\ei ER?}\<CR>\ \ to the monitor,
or while using E by holding the {\s8 CONTROL} key and typing the question
mark symbol \ ? \ (this time without the usual \<CR>, since it is a
one-character command) and you can get back to the file you are editing by
typing {\s8 <CONTROL>}H, i.e., the letter \ H with the {\s8 CONTROL} key
and without a \<CR>.
The {\ei ER} command should be used to read normal (user-generated) files
so that they will be protected against accidental damage and you should
use the {\ei ET} command only if you plan to alter the file. The {\ei
READ} command is used to read the documentation files that are available for
general use.
\sectionbegin{Files and File Directories}
A file is a stored collection of information, perhaps a program (either in
source form or compiled), data, mail, a report or texts of any sort. Most
files on the {\ei SU-AI} system are stored on permanently-available disk
units. Later, you may want to store some of your data on magnetic tape,
and if so, please refer to Appendix A 9.2 in the Monitor Command Manual
and perhaps get someone to help you the first time.
The disk units are amazingly reliable and their contents
are copied to back-up magnetic tapes at frequent
intervals by a system program called {\ei DART}. Monitor commands to run
{\ei DART} can be used to retrieve files that have been removed from the
disk or damaged, although, of course, the files are restored as of the last
time they were saved. As an added feature, there is a command {\ei PUMPKIN}
that allows you to leave an order to have desired files restored for you.
\subsectionbegin{File Identifiers}
Files stored on the disk carry a file identifier of the form
\ {\ei FILNAM.EXT[PRJ,PRG]}, where {\ei FILNAM} is a name of 6 or fewer
characters (usually alphanumeric). The 3- or fewer-character extension
\ {\ei EXT} is normally used to identify the file as to its type, and may be
omitted for files that are not used as source files for other programs.
Should you be so unfortunate as to use more than your allotted file space,
some of your files may be purged and the system purger uses the extension
to decide which of your files it will delete. Files with an extension of
{\ei TMP} are the first to go! You can specify the order
yourself with a \ {\ei PURGE}: \ line in your {\ei OPTION.TXT} file
({\ei READ PURGE<CR>}\ for details).
Some commonly used extensions and their meanings are:
$$\vbox{\baselineskip10pt\ei
\halign {#\ \ \hfill ⊗#\qquad\hfill
⊗#\ \ \hfill ⊗#\qquad\hfill ⊗#\ \ \hfill ⊗#\hfill\cr
DMP⊗Binary core image⊗LST⊗Listing output file⊗SAI⊗SAIL source file\cr
DO⊗A DO file⊗MSG⊗MAIL message file⊗TEX⊗TEX source file\cr
DOC⊗Document file⊗PAS⊗PASCAL source file⊗TXT⊗Text file\cr
FAI⊗FAIL source file⊗PUB⊗PUB source file⊗UPD⊗Document update\cr
F4⊗Fortran source⊗REL⊗Relocatable core image⊗XGP⊗File for XGP\cr}}$$
The {\ei PPN}, that is, the {\tt [}{\ei PRJ,PRG}{\tt ]} portion of the file identifier,
further identifies the file and prevents it from
being confused with other files that may bear the same name. This portion
also specifies the file directory to which the file is assigned. For your
first files, the {\ei PRJ} will be the numeral 1. The {\ei PRG} will be
your assigned programmer name. You can read or store files bearing the
{\ei PRJ,PRG} that corresponds to the {\ei PRJ,PRG} under which you are
logged in (unless you are aliased to another directory, as explained
in the next section) without typing the
brackets and the bracketed information. If you are referring to files on
other directories, this information usually must be included. Because of
the {\tt [}{\ei PRJ,PRG}{\tt ]}, you can be as free and fanciful as you like in
creating file names, but do try to make them meaningful.
Document files on {\tt [}{\ei UP,DOC}{\tt ]}, {\tt [}{\ei S,DOC}{\tt ]}
and on a few other public document directories follow a different
convention and use the extension, {\ei EXT}, to contain the Programmer
Name of the person who created the file. As a convenience, documents on
these directories can be read with E by typing \ {\tt READ FILNAM<CR>}
without an {\ei EXT} and without the {\tt [}{\ei PRJ,PRG}{\tt ]}. Please
note the distinction, {\ei READ} expects to find the file on one of the
public document directories, whereas {\ei ER} and {\ei ET} expect to find
the file on your log-in(or alias) directory or on the specified {\ei PPN}
directory.
\subsectionbegin{ALIAS and ACCESS (to change default file PPNs)}
You will soon feel the need for a convenient way to change {\ei PPN}s in order
to simplify the use of files in a different area. You do this by typing \
{\tt AL PRJ{\:a ,}PRG<CR>}, where {\ei PRJ,PRG} is the desired default
{\ei PPN} to be used for all subsequent file references. If your log-in
{\ei PRG} is to be retained you need only type \ {\tt AL PRJ<CR>}. Once
aliased to another {\ei PPN}, files in the aliased {\ei PPN} are
referenced without the need to specify the {\ei PPN} and files on your
original log-in area do require the {\ei PPN} to be specified. To return
to your log-in {\ei PPN} your type \ {\tt AL<CR>}.
Type {\ei HELP UFD<CR>} or {\ei READ MONCOM<CR>}
to learn how to establish other file directories under your own {\ei PRG}.
If you alias
to another user's {\ei PPN}, you may refer to his unprotected files
without having to specify the {\ei PPN} but you do not acquire any of the
owner's special privileges and your logged-in {\ei PPN} is still checked
for protection purposes.
A{\ei CCESS} is similar to {\ei ALIAS} in format but it requires you to
supply an appropiate password and then it gives you owner access to the
desired file area (running a brief program to do this). R{\ei EAD
ACCESS<CR>} for full details.
In the rest of this manual we will refer to your aliased {\ei PPN}
frequently and it should always be understood that this will mean your
log-in {\ei PPN} if you have not aliased elswhere or to the area that you
are accessing if you have given an {\ei ACCESS} command.
\subsectionbegin{File Protection}
In addition to the protection afforded by the use of passwords (which
itself does not protect files), it is possible to specify a protection
code for each file directory and for each file. The code specifies the
access allowed to the file for its owner (i.e. a user logged in under the
file's {\ei PPN}), for other authorized users, and for guest users. The
system is not totally secure, and indeed it is not intended to be since it
is customary for users to share programs and data with each other. Most
users do not protect their files at all except to write-protect certain
critical files to prevent accidental damage. If you feel that file
protection is necessary, the three-octal-digit protection code (nnn) is
obtained by adding together the desired values as shown in the following
table. This code can be appended as a switch, {\tt /PR=nnn}, to a {\ei
RENAME} command. The user may impose an additional form of protection,
while reading a file with E, by entering it with an {\ei ER} command, by
using a /{\ei R} switch, or by giving the E command \
{\s8 <CONTROL>}X{\ei READONLY<CR>}.
The protection code values are:
$$\vbox{\baselineskip12pt\te
\halign {#\hfill⊗\hfill#\hfill⊗\hfill#\hfill⊗\hfill#\hfill
⊗\hfill#\hfill\cr
User ⊗may not \ ⊗Change PR ⊗ \ Read \ ⊗ Overwrite\cr
\noalign{\vskip 2pt}
Owner⊗ ⊗ ⊗ ⊗100\cr
Local user⊗ ⊗040⊗020⊗010\cr
Guest⊗ ⊗004⊗002⊗001\cr
\noalign{\vskip-12pt}}}$$
$$\vbox{\ei \baselineskip12pt\te \halign {\hfill#\hfill\cr
(for files, 400 means Don't Dump, 200 means DELete protected)\cr
(for directories, 400 means Password required for remote use only)\cr}}$$
\subsectionbegin{E Prepared Files}
Files prepared by the E editor are usually divided into pages of arbitrary
lengths, as dictated by the subject matter and they normally contain a
directory page. This directory page is automatically kept up-to-date by E
as the file is written, with information as to the relative location of
the pages on the disk and with page identifying information extracted from
the first line on each page. This directory can be of considerable use to
the writer of the file and to others if care is taken to see that the
first line on each page properly characterizes the material on the page.
The {\ei HOW} file is an example where this is done. Special E commands
simplify the generation of appropiate directory lines for
programming-language files (listing labels, procedure names, etc.,
as desired, to facilitate directory searches).
Most of the compilers and document-preparation programs on the system are
written so as to recognize and ignore the directory page and to ignore the
pagination.
\subsectionbegin{Filehacks}
F{\ei ILEHACK}s are simple shorthand names for certain commonly-referenced
files. They usually consist of a back slash \ \\ \ followed by a name that may be
truncated to only enough letters to disambiguate it from other
{\ei FILEHACK}s. For example, typing \ {\tt ET}\\{\tt G<CR>} will enter the
{\ei GRIPES.TXT}{\tt [}{\ei 2,2}{\tt ]} file.
Filehack names may be used with the {\ei COPY} command and while using the
E editor. Some useful filehacks are listed below. Some of the files are
not maintained in E format and some of the filehacks imply {\ei /R} (readonly)
mode, as shown in the list. To override a default {\ei /R} mode, you can
explicitly specify {\ei /}--{\ei R} after the filehack.
$$\vbox{\baselineskip11pt\ei
\halign {#\hfill⊗#\hfill⊗#\hfill⊗#\hfill\cr
FILEHACK \ \ \ ⊗Abbr \ \ \ ⊗/R? \ \ \ ⊗ File\cr
\noalign{\vskip 2pt}
\\BBOARD ⊗\\B ⊗No ⊗The system bulletin board file\cr
\\CSD ⊗\\C ⊗Yes ⊗CSD bulletin board file\cr
\\DIGEST ⊗\\DI ⊗Yes ⊗The current AP news digest\cr
\\DOWN ⊗\\DO ⊗Yes ⊗The system downtime forecast file\cr
\\FORWARD ⊗\\F ⊗Yes ⊗The forwarding file for the MAIL system\cr
\\GRIPES ⊗\\G ⊗No ⊗The system gripe file\cr
\\NEWS ⊗\\NE ⊗Yes ⊗The current NYT news summary\cr
\\NOTICE ⊗\\NO ⊗Yes ⊗The system message file\cr
\\NS ⊗\\NS ⊗Yes ⊗Your current NS notifications file\cr
\\MAIL ⊗\\M ⊗No ⊗Your current mail file\cr
\\PLAN ⊗\\P ⊗Yes ⊗Your current plan file\cr}}$$
The E editor supports two other useful filehacks, the use of the
question mark ? to refer to the on-line E manual and the use of the partial symbol
\ $\partial$ to refer to your own mail file. Typing \ {\tt ET}$\partial${\tt <CR>}
is a good way to start the day (after logging in!).
\subsectionbegin{To DELete, REName or COPy Files}
Files may be deleted by typing \ {\tt DEL FILNAM.EXT[PRJ{\:a ,}PRG]<CR>}. If
several files are to be deleted, their names may separated by commas and
typed in one command. The {\tt [PRJ,PRG]}s may be omitted if the files are
on your aliased {\ei PPN}(or on your original log-in {\ei PPN} in you
are not aliased away). You may prefer to use the {\ei DIRED} program
(see below) if you have several files to delete.
Files are renamed by typing \ {\tt REN newname$←$oldname<CR>}, where the
names must include extensions (if used) and {\ei PPN}s if different from
your alias {\ei PPN}. R{\ei ENAME} may be used to change the protection
by typing \ {\tt REN oldname/PR = nnn<CR>} where
nnn is the desired protection (see table under Protection above).
Renaming has the advantage over copying and deleting the original file in
that only the directory references are altered and no actual copying of
the file is needed.
Files are copied (without destroying the original file) by the {\ei COPY}
command. As always, the {\tt [PRJ,PRG]} portion of the name may be
omitted for files on your alias area. An example will illustrate this and
several other points:
\par
\ \ \ \ {\tt COP XXXYYY.TMP$←$XXX.ALS[UP{\:a ,}DOC](2:*){\:a ,}YYY.TMP(3{\:a ,}6:9)<CR>}
\par
There are no such files, but if there were, a new file would be written on
your alias area containing all but the first page of file
{\ei XXX} followed by pages 3, 6, 7, 8 and 9 from file {\ei YYY} (also
from {\tt [UP,DOC]}) appended. Note that the {\ei PPN} is sticky, that
is, once one has been specified for one source file, it need not be
repeated and so both source files would be from {\tt [UP,DOC]}. The
resulting file would, of course, not contain an E directory page and you
would be asked if you want one created when you try to edit the new file with E.
If you want to copy one or more files into your own area, as separate
files, each with the same name and extension as in the source, you may
omit the destination entirely and simply type:
\par
\ \ \ \ {\tt COP NAM1.EX1[PRJ{\:a ,}PRG]{\:a ,}NAM2.EX2{\:a ,}NAM3.EX3{\:a ,}NAM4.EX4<CR>}
\par
If you list several files, watch your periods and commas, they must be right.
If you try to write over a file that already exists, you will be given the
option of replacing the original file or of aborting the request. If the
source file or files do not exist you will be told and the
{\s8 <CONTROL>}\<CR>\ command may be used to recall your typed string so that
you may correct or modify it (but not if you have typed Y or N to answer any
of copy's questions).
A word of caution---While {\ei PPN}s are sticky, as shown, for the {\ei COPY}
command, different sets of rules are used in other situations.
\subsectionbegin{Listing Files---SPool, XSpool, UNSpool, Qspool and DOVer}
While it is possible to list files directly on the line printer and on the
{\ei XGP} printer, these devices are in nearly constant use and there is a
serious scheduling problem. The preferred procedure is to spool the
request and allow the system to schedule the actual listing on the basis
of the time of the request and the projected size of the listing.
Spooling has the added advantage to the user of not tying up the user's
job while the listing is actually being done. Large jobs may also be
scheduled for delayed spooling to a time, say at 4 A.M. ({\ei /HOLD}=400)
when the printer will be in less demand. The listings are normally
preceded by a title page for easy identification. Delayed listings of
{\ei XGP} listings are not recommended at present because of the poor
stacking capability of the {\ei XGP} and inadequate storage facilities, but
do try to schedule large listings during off hours if at all possible.
Files are spooled for the line printer by typing
{\tt SP FILNAM.EXT[PRJ},{\tt PRG]<CR>}, and for the \ {\ei XGP} by typing
\ {\tt XS FILNAM.EXT[PRJ,PRG]<CR>}. If the {\ei PPN} is not specified,
your alias {\ei PPN} is assumed. If there is no {\ei EXT} and
the given file name does not exist without an extension then
{\ei XGP} is assumed. You may follow the file
name with a list of page numbers or page ranges (enclosed in parentheses)
that are to be printed, for example (2,4,6:8) will cause pages 2, 4, 6, 7, and
8 to be printed.
Several files may be spooled by one command, with the file names separated
by commas. The file name may carry switches. If the switch follows the
name, it applies to that file only. A switch listed ahead of a file name
applies to that file name and all following names.
An asterisk may be used in place of a name, an extension, a {\ei PRJ} or a
{\ei PRG}. This will match any term except extensions of {\ei RPG}, {\ei
DMP} or {\ei REL}. This may, of course, result in the spooling of more
than one file. If you use an asterisk, it might be wise to add an
{\ei /ASK} switch which will cause {\ei SPOOL} to list the files it has
selected, one at a time, and ask for a Y confirmation before spooling each file.
Alternatively, the file names and associated specifications may be read
from an auxiliary file if you use the \@\ sign followed by the name of
this auxiliary file in the spool command.
Most of the files that you may want to spool will probably be normal text
files, that is files written in {\ei ASCII} code, but it is possible to
spool binary files with the output printed in octal by appending the
switch \ {\ei /OCTAL} or \ {\ei /DUMP}.
A few of the more useful spooling switches are:
$$\vbox{\baselineskip10pt\ei
\halign{#\hfill⊗#\hfill\cr
Switch⊗ \ \ Action\cr
\noalign{\vskip 2pt}
/DElete ⊗Delete file after printing\cr
/NOHeading \ ⊗No headings at top of each page\cr
/NOTItle ⊗No title page\cr
/REPeat=n \ \ ⊗Make n (decimal) copies (not sticky)\cr
/OCTal ⊗Octal listing\cr
/ASK ⊗Ask for confirmation\cr
/Hold=hhmm \ \ ⊗Hold in queue until time hh hours and mm minutes\cr
/Qspool ⊗Report status of queue after entering request\cr}}$$
Typing \ {\tt UNSP<CR>} will cause the spooler to list the files in the
queue that carry your {\ei PRG}, one at a time and ask if you indeed do
want them removed from the queue. Typing \ {\tt Q<CR>}, or \ {\tt Q/X<CR>}
if you are only interested in the {\ei XGP}, will cause the present contents
of the queue to be displayed.
It is now possible to print files on the Dover printer. This facility is
still under development as a part of a general system program called {\ei
PRESS}. At the present time, typing {\ei R PRESS<CR>} or simply {\ei
DOV<CR>} will run this program and information is then available by typing
{\ei HELP<CR>} in response to the program's ready signal of {\tt Press>}.
\subsectionbegin{Listing and Searching File Directories}
As mentioned earlier, the {\ei PPN} portion of the file identifier is used
to assign the file to a directory. To see a listing of a file directory,
of, say, the {\tt [UP,DOC]} directory, type \ {\tt DI [UP,DOC]<CR>}.
For your own aliased directory, the {\ei PPN} may be omitted
or, if you want full information, type \ {\tt DI/FU<CR>}. If you have
more than a screen full, remember the \ {\s8 <CONTROL>}\<BREAK>\ command to
delay scrolling.
To save a copy of your directory in a file, type \ \ {\tt DI FILNAM$←$<CR>}.
If you have several {\ei PRJ}'s and want them all listed, type
\ {\tt DI FILNAM$←$[*{\:a ,}PRG]<CR>}. Don't, \ I repeat, \ {\ei DON'T} use
{\tt [*{\:a ,}*]} or you will fill up all of your allowed file area, and maybe all of
the available disk space as well, with all of the directories on the
entire system, and it will take a long, long time!!!
There is a new program ({\ei R WILD<CR>}) available with greater (wild card)
search capabilities than with the {\ei DI} command. For details, type
\ {\tt READ WILD<CR>}.
\subsectionbegin{Directory Editing, DRD or R DIRED}
The {\ei DIRED} program allows the user to edit a directory in a manner
quite analogous to the way one edits a file using E. You call {\ei DIRED}
by typing {\ei DRD<CR>} to the monitor.
You will be presented with a
listing of the files on your aliased {\ei PPN} directory. By
default, this listing will be sorted alphebetically by {\ei FILNAM} and
{\ei EXT}. Other sortings may be specified by your {\ei OPTION.TXT} file
or they may be specified at the time {\ei DIRED} is called.
You can modify {\ei DIRED}'s display by using commands that are similar to
the E text-editor commands, and in so doing, you will be preparing a
list of actions that will be executed later, either by an explicit command
or by a normal exit from the program. For example, if you delete a file
listing from the display by using the \ {\s8 <CONTROL><META>}D \ command,
the file itself will be listed for later deletion. You can also rename, spool
and change the protection on files, all by using this
program. R{\ei EAD DIRED} before trying anything fancy. You can abort
the actual execution of your action list, if you get into serious trouble,
by using the {\ei CALL} key.
\subsectionbegin{Monitoring File Usage, DSKSIZ, R CKSUM and CK}
The command {\ei DSKSIZ<CR>} reports your disk usage and your disk
allotment, or that for a specified {\ei PRG} typed as an argument. Two
switches may be used, /F for a fast summary (recommended) or /V (for
verbose) if you want to be given the opportunity of having the information
recorded in a file for later reference and, perhaps, the opportunity to
write a second file {\ei PURDAT} to contain a list of the files for the
purger to delete.
The {\ei R CKSUM<CR>} command allows you to specify a list of files that you
want monitor\-ed with a record kept of all pages to which any changes have
been made since the last reporting. Common uses of this command are to
monitor changes to \\{\ei BBOARD}, additions to errata and {\ei UPD} files
relating to programs of interest, and changes to files that are being
worked on by several people simultaneously. For full details type {\ei
READ CKSUM<CR>}.
The monitor command {\ei CK<CR>}, reports the existence of new mail and of
{\ei CKSUM} changes. C{\ei KSUM} changes, so reported, may then be viewed
(either automatically or by giving the monitor command {\ei CONT<CR>},
with the choice previously specified by an {\ei R CKSUM} command). One
enters E with the pertinent files listed as referenced files so that one
may switch between them by the {\s8 <CONTROL>}H command and with the
pertinent pages marked so that they may be viewed, one after the other, by
using the {\s8 <CONTROL>}M command.
\sectionbegin{HELP and READ HOW to learn all about it}
The {\ei HELP} command and the {\ei HOW} file greatly simplify the task of
locating {\ei WAITS} system information and supplement the use of the {\ei READ}
command which is limited to those system features for which there are separate
documentation files.
\subsectionbegin{HELP}
The Monitor command {\ei HELP NAME<CR>}, where {\ei NAME} is the name of
any one of many system commands or of many user-available programs, is all
that you must type to get information regarding the named
command or program.
In many cases, a brief resum\'e will appear on your screen with enough
information for you to use the command or program and with references to
where more information is to be found.
Alternatively, you may be told of a
program that can provide the service requested or that can produce a
document containing the desired information and you will be asked for a Y
confirmation that you want this program to be run.
Typing {\tt HELP HELPER<CR>} will supply one-line descriptions of many of these
messages and services, and typing
{\tt HELP<CR>} (without a {\ei NAME}), will list all the possible names.
Finally, you may be told that no {\ei HELP} file exists but that a
file does exist that may contain the information that you seek.
The necessary {\ei R E;FILNAM} command will appear on your screen only awaiting
the typing of a \<CR> for confirmation that you do indeed want to see this
file. Most of these files are on the {\ei UP,DOC} and {\ei S,DOC}
file directories.
Appendix H contains a complete list of all {\ei HELP} resum\'es, services
and {\ei R E;FILNAM} references as of 11 Dec. 80. Typing {\ei READ
HELP<CR>} will provide information as to how you can write {\ei HELP}
files for the {\tt [3,2]} directory.
\subsectionbegin{READ HOW}
The {\ei HOW.ALS}{\tt [}{\ei UP,DOC}{\tt ]} file is a (currently incomplete) reference file of
information regarding monitor commands and useful system programs.
It is organized with the material on each topic restricted to a single
page and with the first lines of each page so arranged that the file's
directory page forms an easily-used table of contents. The file is
read by typing \ {\ei READ HOW<CR>}(how else?). The directory
page can be used as a browsing aid to find out what is available.
In many cases the material in the {\ei HOW} file is sufficient either to
allow one to do simple things without the need for further study, or
to prod one's memory as to the necessary details.
It is hoped that many users will add to the {\ei HOW} file by writing
{\ei HOW}-formatted pages for subjects on which they are well versed. Mail such
information to ALS for proofing and final inclusion in {\ei HOW}. Corrections
to existing pages are also welcome.
\sectionbegin{System Programs}
Several system programs have already been mentioned on earlier pages of
this manual. There are a large number of such programs that are
of great value in simplifying the user's tasks. A few of these will be
described in this section.
Commands like {\ei LOGIN} tell the monitor to run particular system
programs in your core image, that is in memory space specifically assigned
to you by the system. Many of these programs are evoked by simply typing
their names, usually followed by some parameters. These commands are all
documented in the Monitor Command Manual ({\ei READ MONCOM<CR>}) with
recent additions and corrections in {\ei MONCOM.UPD}. Cryptic one-line
descriptions of these commands are given in Appendix C.
There are a few system commands that act without occupying the user's core
space and hence may be issued without destroying a core image that the
user may wish to retain. A special escape command \ \<ESC>. (where the
period is a part of the command) may be used to exit from an operating
program and so to allow the necessary commands to be typed.
After giving the desired command one can reenter
the operating program by the \ \<BREAK>. command (where the period is
again a part of the command). Some of these system commands may also be
given while using the E editor by special E commands, for example, to
{\ei SPOOL} a page of text or to {\ei MAIL} some text from a file being
edited to another person.
Other equally useful programs are
called by the {\ei R} command; \ {\ei R CKSUM<CR>}, is an example. These
are usually documented in separate manuals. Note that {\ei R} is not an
abbreviation for {\ei RUN} but is a different command and it requires the
program to be found on a special system directory {\tt [1,3]};
this {\ei PPN} will be used even if you should specify another
one. The {\ei RUN} command is used to run user's programs as will be
explained later. Many of these ({\ei R FILNAM}) programs are documented
by {\ei HELP} and {\ei HOW} but a substantial number are not. A complete
list of {\ei DMP} files on {\tt [1,3]} is given in Appendix R.
Just to complicate matters, there is yet another category of commands that
are called by name but that actually run the {\ei SNAIL} system program.
S{\ei NAIL}, in turn, may select and call the correct system programs to
process a user's source file and finally may load and initiate the
execution of the user's compiled program, all this without further user
intervention. The distinctions between these various catagories of commands
is somewhat artificial as far as the user is concerned and the only thing
to note is that some commands are called directly by name while certain others
require the \ {\ei R FILNAM} \ method of calling.
\subsectionbegin{Compiling and Running User Programs, with SNAIL}
Computer programs can exist and be stored as files in at least three
forms, 1) as one or more Source files, written in either an Assembly
language or some Higher-Level language that can be processed by an
Assembler or Compiler to produce Relocatable program modules, 2) as one or
more Relocatable ({\ei REL}) files that can be linked together by a Link
Loader to produce an executable Core Image, and 3) as a Dump ({\ei DMP})
file that can be loaded directly into core for execution.
User-created programs that are no longer under development often are
kept in {\ei DMP} form and can then be run by the the {\ei RUN}
command. The {\ei SNAIL} program is designed for use with user-created
programs while they are still undergoing development and are subject to
frequent recompilations.
Some compilers consist of two separate programs, an initial Compiler that
produces a file written in an intermediate language for some hypothetical
machine and a final Translator that translates this intermediate language
into the final machine-dependent form. At the present time, the {\ei SNAIL}
commands deal only with
single-stage compilers which may, of course, involve multipasses as long
as the external handling of intermediate-language files is not required.
It is customary to write {\ei DO} files that take the place of {\ei SNAIL}
commands for dealing with these two-separate-stage compilers.
S{\ei NAIL} commands are actually of three classes, those
having to do with the compiling of computer programs, which will be
discussed in this section, those relating to document compilers and a
third and less used class that incorporate some of the features of the
{\ei DO} commands (see the Monitor Command Manual for these).
S{\ei NAIL} commands allow the user to delegate to the computer many tasks
relating to: 1) the checking as to the need for a recompilation, 2) the
choice of the proper assembler or compiler to produce a new Relocatable
({\ei REL}) file, 3) the production of an assembly listing (if wanted), 4)
the choice between loading a Dump ({\ei DMP}) file or link-loading the
specified ({\ei REL}) files to produce a Core Image, 5) the choice of a
suitable debugging program, 6) the production of a new {\ei DMP} file, and
7) the starting of execution either of the program proper or of the
debugger. S{\ei NAIL} commands are remembered and may be reinitiated by
giving the command only (without file names and switches) or they may be
reinitiated directly from the E editor by the {\s8 <CONTROL>}X{\ei GO<CR>}
command.
The date written is kept with each Source file,
{\ei REL} file and {\ei DMP} file and when a {\ei SNAIL} command is
given, these dates are compared and (unless ordered otherwise by
switches) the amount of work is minimized. This is done, 1) by not
recompiling a source file if there is a corresponding {\ei REL} file and
if this {\ei REL} file carries a later date written than does the source
file, and then, 2) if loading is required, by omitting the linking
operation and by loading the {\ei DMP} file if one exists and if this, in
turn, carries a later date written than do the {\ei REL} files.
The six compiler commands and their actions (when not modified by switches), are:
$$\vbox{\baselineskip10pt\ei
\halign {#\hfill⊗#\hfill⊗\hfill#\hfill⊗\hfill#\hfill⊗\hfill#\hfill⊗\hfill#\hfill⊗\hfill#\hfill\cr
SNAIL ⊗ ⊗ Produce ⊗ Link ⊗ Produce ⊗ Include ⊗ Will Start\cr
Command \ ⊗Abbrev ⊗ \ REL file \ ⊗ \ \ Load \ \ ⊗ \ Core Image \ ⊗ \ Debugger \ ⊗ Execution with\cr
\noalign{\vskip 2pt}
COMPILE ⊗COM⊗may\cr
LOAD ⊗LOA⊗may⊗may⊗will\cr
PREPARE ⊗PRE⊗may⊗may⊗will⊗will\cr
EXECUTE \ \ ⊗EX⊗may⊗may⊗will⊗ ⊗user program\cr
TRY ⊗TRY⊗may⊗may⊗will⊗will⊗user program\cr
DEBUG ⊗DEB ⊗may⊗may⊗will⊗will⊗debugger\cr}}$$
These commands take as arguments one or more file identifiers, separated by
commas. In\-di\-vid\-u\-al programs may also be broken into two (or more) files
having only one {\ei END} statement at the end of the last file. This is
convenient if a common program portion is to be shared by more than one
program. Such segment names are separated by plus signs rather than by commas,
and they compile into a single {\ei REL} file carrying the name of the
last segment. Alternatively, the arguments (that is, the names of
the files to be used by the {\ei SNAIL} command and their associated
switches) may be contained in a command file and refered to by an \@ \
sign followed by the name of the command file, e.g. {\ei LOAD \@ SYS.}
The choice of the proper compiler is made by {\ei SNAIL} on the
basis of the file's {\ei EXT}. If standard extensions are used, {\ei
SNAIL} will refuse to use an incorrect compiler. The file extensions need
not be explicitly stated in the command if the source files carry standard
extensions. In those cases where recognized extensions are not used, the
desired compilers may be specified by switches. The following extensions
and compiler switches are recognized:
$$\vbox{\baselineskip10pt\ei
\halign {#\hfill⊗#\hfill⊗#\hfill⊗#\hfill⊗#\hfill⊗#\hfill\cr
EXT \ \ ⊗Switch \ \ \ ⊗ \ \ Processor \quad \quad \quad ⊗EXT \ \ ⊗Switch \ \ \ ⊗ \ \ Processor\cr
\noalign{\vskip 2pt}
FAI ⊗/FAIL ⊗FAIL assembler ⊗SAI ⊗/SAIL ⊗SAIL compiler\cr
MAC ⊗/MACRO \ ⊗MACRO assembler \quad \quad ⊗F4 ⊗/F4 ⊗FORTRAN compiler\cr
PAL ⊗/PALX ⊗PALX assembler ⊗BLI ⊗/BLISS ⊗BLISS compiler\cr
MID ⊗/MIDAS ⊗MIDAS assembler ⊗AL ⊗/AL ⊗AL compiler\cr
S1 ⊗/S1 ⊗FASM assembler ⊗PAS ⊗/PASCAL \ ⊗PASCAL compiler\cr}}$$
Switches may also be used to interfere with the automatic date-written
dependencies noted above, to specify the debugger that is to be used, to
produce a {\ei DMP} file, and to produce various types of listings. Some
of the more important switches are:
$$\vbox{\baselineskip10pt\ei
\halign {#\hfill⊗#\hfill⊗#\hfill\cr
Switch \ \ ⊗Abbrev \ ⊗ \ \ \ Meaning\cr
\noalign{\vskip 2pt}
/COMPILE \ ⊗/COM ⊗Re-compile always without checking the REL dates\cr
/CREF ⊗/C ⊗Request a cross-reference listing\cr
/DDT ⊗/D ⊗Use DDT if a debugger is required\cr
/LIBRARY ⊗/LIB ⊗Search this term as a library\cr
/LIST ⊗/L ⊗Make a listing file\cr
/MAP ⊗/MAP ⊗Produce a loader map of global symbols\cr
/RAID ⊗/RA ⊗Use RAID if a debugger is required\cr
/SAVE ⊗/SAV ⊗Make a DMP file of the core image\cr}}$$
For a complete list see {\ei MONCOM.BH}{\tt[}{\ei S},{\ei DOC}{\tt ]} Section A 1.7.
Switches may also be passed to the translators and to the link loader.
\subsectionbegin{The DO Command}
The {\ei DO} command instructs the monitor to load the line-editor buffer
with text from the file named in the command, which should contain a
series of commands. The system then proceeds to execute this series of
commands just as if the user had typed them directly. The command string
may be quite elaborate, the only proviso being that the total length of
the string must not exceed the size of the buffer (about 140 characters).
You can even circumvent this restriction by splitting your intended string
of commands at a point where the command string leaves the system at
monitor command level, inserting a {\ei DO} command at this point calling
a second {\ei DO} command string (on the same page) and having the rest of
the commands in this second (and third, fourth, etc.) {\ei DO} command
string.
Certain necessary character conversions are required in {\ei DO} files to
allow special keys, such as {\s8 <CONTROL>}, {\s8 <META>} and {\ei <CR>}, to be
indicated. The {\tt <CR>} and {\tt <LINE>} key strokes that may be used in
writing the command string are ignored, as are the E-editor directory and
page marks.
The following special symbols are used:
$$\vbox{\baselineskip10pt\ei
\halign{\hfill#\hfill⊗ # \qquad\hfill⊗
\hfill#\hfill⊗ # \hfill\cr
Symbol⊗\hfill Meaning⊗Symbol⊗\hfill Meaning\cr
$↔$⊗Translates to {\ei CR}⊗$\alpha$⊗Adds {\s8 CONTROL} bit to the next character\cr
$\down$⊗Translates to {\ei LINE}⊗$\beta$⊗Adds {\s8 META} bit to the next character\cr
$≠$⊗Translates to {\ei ALT}⊗$\alpha\beta$⊗Adds both {\s8 CONTROL} and {\s8 META} bits\cr
$\lambda$⊗Translates to {\ei CALL}⊗$|$⊗Terminates and separates {\ei DO} strings\cr
$\scriptstyle\otimes$⊗Translates to {\ei ESC}⊗$≡$⊗Quotes the next character\cr
$\scriptstyle\otimes -$⊗Translates to {\ei BREAK}⊗\ ⊗\ \ \ \ (so that an $\alpha$, say, can actually appear)\cr}}$$
Note that these symbols and those used for E macros are similar but not
identical, so refresh your memory before writing either type of string.
The question mark symbol \ ? performs the special function of designating
the character that immediately follows it to be a variable name to be
defined by the user at the time the {\ei DO} command string is executed.
Suppose the character is A (i.e., ?A). At the first occurence of this ?A in
the command string, {\ei DO} types out \ {\tt A= } \ and waits for the user to
type in a text string ending with \<CR>. This string (but not the \<CR>)
is substituted for every occurrence of ?A in the command string and the
execution proceeds.
If several {\ei DO} command strings are stored in the
same file, they must be separated by the \ {\ei $\relv $} symbol. The command
\ {\ei DO T(}3{\ei )<CR>} calls for the execution of the third
command string in the file named {\ei T.DO}.
The {\ei DO} command is remembered in a {\ei TMPCOR} file as if it were a
{\ei COMPILE}-type {\ei SNAIL} command, so the exit-mode
commands in E ({\s8 <CONTROL>}X{\ei GO<CR>} for example) will also repeat the {\ei DO}
command. Thus, users of languages that are not recognized by {\ei SNAIL}
can write {\ei DO} files to perform similar functions.
Many of the features mentioned above can be illustrated by a
{\ei DO} file, named {\ei T.DO}, that was used in preparing this manual and that
contains the following text:
$$\vbox{\ei \baselineskip10pt \halign {#\hfill\cr
ET TEXT.TEX$↔\!\!\alpha$Xparen $\{ ↔\!\!\alpha$Xdefine $\,\scriptstyle
∩$$↔\!\!\alpha$($\alpha$)$\alpha \beta \? \down ↔\relv$\cr
R maxtex$↔$\\input text.tex$↔\relv$\cr
ET ?A.TEX$↔\!\!\alpha$Xparen $\{ ↔\!\!\alpha$Xdefine $\,\scriptstyle
∩$$↔\!\!\alpha$($\alpha$)$\alpha \beta \? \down ↔\relv$\cr
R maxtex$↔$\\input ?A.tex$↔\relv$\cr
DOVER ?A.PRE$↔\relv$\cr}}$$
The first string in this file (called by the
monitor command \ {\ei DO T<CR>}) starts E-editing the file {\ei
TEXT.TEX}. It then defines the parenthesis-finding commands to refer to
the braces \ $\{ $ and \ $\} $ and it defines a macro,
callable by the E command \ {\s8 <CONTROL>}$\scriptstyle ∩$, that will
search for a matching pair of braces, an operation that is very useful in
checking \TEX\ input files.
The second command string (called by the monitor command \ {\ei DO T(}2{\ei )<CR>})
starts the \TEX\ document compiler ({\ei MAXTEX}, in this case) and gives
it the required input line specifying the file {\ei TEXT.TEX}. When an
error is reported by \TEX, one can go back to E by the \TEX\ \ e \ command
without disturbing the retained {\ei TMPCOR} established by the {\ei DO
T(}2{\ei )} command so that \TEX\ can be re-initiated from E by typing \
{\s8 <CONTROL>}X{\ei GO<CR>}.
The third and fourth strings are similar to the first two except that the
file name is given by the ?A convention so that the name of the source
file may be typed-in at the time that the {\ei DO} command is given. The
fifth string is simply a duplicate of the {\ei DOVER} command that
\TEX\ generates (with the file name in this same ?A form).
\subsectionbeginb{{\ei <ESC>\#<CR>} Terminal-Input Macros}{Terminal-Input Macros}
Terminal-input macros may be used to shorten the typing of frequently-used
hard-to-type
system commands. They are evoked by typing {\ei <ESC>}\#\<CR>, where \#\
is an identifying number in the range from 5 to 20. Each
macro definition is limited in length to 18 characters, although it may
contain a {\ei DO} command which extends the limit to 140 characters or
more. Terminal-input macros remain associated with the login terminal
even when aliased or mapped away. They are redefined automatically at
login if they are saved in a {\ei CHRMAC.CHR} file and if there is a {\ei
LOGIN: CHRMAC;} statement in one's {\ei OPTION.TXT} file.
To create a terminal-input macro, type {\ei R CHRMAC<CR>}.
Then type the number to be used to identify the macro followed by
a \<CR>, then the macro itself. Type {\ei <ALT>X} to exit from the
defining mode, type the > symbol to write the macro into a file, and
finally, an E to exit from the program. The program is self documented,
responding to a question mark ? and to an \<ALT>? with lists of the
options available while in the initial and the macro-defining modes,
respectively. For more information, {\ei READ MACROS<CR>}.
\subsectionbegin{Who, When, Where and Finger}
These four commands provide the user with information as to {\ei W}ho is
currently using the system and their current activity, {\ei WHEN} they
last logged off (even if they are currently logged in), {\ei WHE}re they
are located, and puts the {\ei FING}er on them (identifying them by name
and physical location). These commands may be given simply by typing the
capitalized portions of the command names as just used (with a \<CR>) or
they may be modified by programmer names given as arguments. Without an
argument, {\ei WHEN} refers to the interrogating user only while the other
three commands provide information on all users.
W{\ei HO} presents a dynamic display that is kept updated to show
who is actually getting service with some information about the total usage.
W{\ei HO} normally exits automatically after two minutes and can be terminated
earlier by typing either a \<SPACE>\ or a \<CR>. Since the material to be
presented will usually more than fill the screen, it may be scrolled by
typing \<FORM>\ or $\up$ for up and \<VT>\ or $\down$ for down, or it may
be restricted in scope (while it is running) by typing certain single
letter commands (without \<CR>s) of which the following are the more
useful:
$$\vbox{\baselineskip11pt\ni
\halign {#\hfill⊗#\hfill⊗#\hfill⊗#\hfill\cr
R \quad ⊗Only recently running jobs \qquad \quad ⊗M \quad ⊗My jobs only\cr
N ⊗Restore normal display ⊗E ⊗Exit, leaving info. on screen\cr}}$$
Still other commands are available that permit the detailed specification
of the {\ei PPN}s or job numbers that are to be displayed, either directly
or indirectly through a referenced file. As an example, the command
{$\ast$}{\ei PRG<CR>} wil restrict the display to only jobs belonging to
{\ei PRG}. For full details type
{\ei READ WHO<CR>}.
W{\ei HO} should not be confused with the two very useful
Who Lines that can be made to appear at the top of the screen by the {\ei
<ESC>W} command (also automatically established at log-in by an {\ei
OPTION.TXT} request). Try it! and {\ei READ WHOLIN<CR>} for an explanation
of what you see.
The other three programs present static (possibly scrolled) displays.
W{\ei HEN} requires no further explanation. W{\ei HER}e, without an
argument, provides a list of all jobs in numerical order and a limited amount of
statistical information about each job. F{\ei ING}er provides a somewhat
different set of details about the jobs and identifies each user by both
{\ei PPN} and name and gives the physical location of the terminal being
used. If the {\ei FINGER} request is for specific {\ei PPN}s, and the
individuals are not logged in, then the times of their last log-outs are
reported.
\subsectionbegin{FIND, DFIND and OFIND}
The {\ei FIND} command is used to locate information in a file by
searching for a key (or several keys) within the
specified file. The key may be any arbitrary string of characters without
regard to their surroundings. The case of letters is disregarded unless
specifically restricted, as noted below, and a space between words in the
key will match zero or more spaces, tabs, {\ei CRLF}s and formfeeds. If the file
name is omitted, the system phone directory is assumed. Actually, the
{\ei FIND} command and its relatives {\ei DFIND} (for searching the
unabridged dictionary word list), and {\ei OFIND} (for referencing one's
{\ei OPTION.TXT} file for detailed specifications), are very useful for
other types of searches as well. One can, for example, search one's mail
file by specifying \ {\ei IN }$\partial $ \ or the system \ {\ei NOTICE.TXT}
file, by specifying \ {\ei IN }$\partial \!\ast$.
The key may be specified in quite general terms, using the following
symbols:
$$\vbox{\baselineskip10pt\ei
\halign{\hfill#\hfill⊗ # \hfill\quad⊗\hfill#\hfill⊗ # \hfill\cr
Symbol⊗\quad Meaning ⊗Symbol⊗\quad Meaning\cr
$\,\,$,\quad⊗Comma used to separate strings⊗$\scriptstyle ≡$, ⊗Comma is used in string\cr
$\scriptstyle ≡$x ⊗A lower case x⊗$\scriptstyle ≡$X ⊗An upper case X\cr
$∀$ ⊗Any character⊗$∃$ ⊗Any char. except a delimiter\cr
$¬$ ⊗Any char. except the following⊗$\relv$ ⊗Any delimiter\cr
$\infty$ ⊗Any num. of char. that follows⊗$\scriptstyle ≡$⊗Quotes the next character\cr
$\{$xyz$\}$ ⊗Any one of the embraced chars.⊗$\ \infty \{$xyz$\}$ \quad ⊗Any num. of any embraced chars.\cr}}$$
Hits are reported by typing out a portion of the text.
By default, a paragraph is used for the {\ei FIND} command and
a line is used for the {\ei DFIND} command. It is also possible to set a
maximum number of lines that are to be printed on each side of the hit.
The hit list may be sent to a named file by adding {\ei WRITING FILNAM} to
the command string, and in this case only the number of hits will be
reported on your terminal.
The complete syntax of the {\ei FIND}, {\ei DFIND} and {\ei OFIND} commands is:
{\ei find{\tt [} within <delim>{\tt ]}{\tt [} surround <num>{\tt ]} <key>
{\tt [} omit{\tt [}ting{\tt ]}{\tt [} only{\tt ]} <omits>{\tt ]} {\tt [} in
<file>{\tt ]}{\tt [} writing <file>{\tt ]}}
where {\ei {\tt [} {\tt ]}} indicates optional elements, the delimiter used
with {\ei WITHIN} must be {\ei MSG}, {\ei LINE}, {\ei PAGE} or {\ei
PARAGRAPH}, and <num> specifies the maximum number of lines to surround
the key. For more information {\ei READ FIND}.
The E editor has an extended command {\s8 <CONTROL>}X{\ei DFIND} that interfaces
with the {\ei DFIND} program (Note that the {\s8 <CONTROL>}X{\ei FIND} command in E is
something else entirely!). This command starts up a phantom job to do the
search, and a summary of the results are sent to your terminal. The
summary includes the number of hits, as well as the first, last, and (if
different) shortest "hit" lines. Incidentally, if you are a poor speller
you might be interested in the {\ei SPELL} program.
\subsectionbegin{MAIL (to Users and to the System), SEND and TALK}
The {\ei MAIL} program is used to send messages to users and sometimes to
special disk files for certain purposes. All users of the system make
use of the {\ei MAIL} program in some form or other.
Even non-authorized users are able to use {\ei MAIL}
to communicate with authorized users via the system.
The more important commands in this group are:
$$\vbox{\baselineskip10pt\ei
\halign to size{\hskip 10pt\hbox to 50pt{#\hfill}⊗#\hfill
\tabskip 0pt plus 100pt\cr
Command⊗\hbox{\hskip+60pt Meaning}\cr
MAIL⊗Send a message to one or more message files and notify adressees\cr
SEND⊗Send a message to the terminals of one or more designated users\cr
GRIPE⊗Send a message complaining about a system problem\cr
REMIND⊗Schedule a message to be sent at some later time\cr
PLAN⊗Create a file describing how to find you when not logged in\cr
EVENT⊗Send a message to all users about an event on a given date\cr
BATCH⊗Schedule the execution of a command string at some later time\cr
LATER⊗Schedule the execution of a given program at some later time\cr
\cr
CK⊗Report existence of new mail (and of CKSUM data, see section 4.10)\cr
ET$\partial$⊗Edit E-formatted message file\cr
RCV⊗Edit non-E-formatted message file (now seldom used)\cr
CANCEL⊗Delete {\ei REMIND}, {\ei BATCH}, or {\ei LATER} requests or queued {\ei MAIL}\cr}}$$
The {\ei TALK} command
is a separate system feature that enables two logged-in users to link their
terminals so that everything either of them types will appear on both screens.
This feature is potentially surprising to the person not initiating it,
so it is wise to reach an
agreement, usually through the exchange of
{\ei SEND} messages, prior to establishing the link.
The {\ei MAIL} command, itself, will now be described.
Each user of the system is automatically assigned space in a special
message file, as required, to which messages can be sent. A logged-in
user, on receiving a message in this way, is notified of the message
arrival on the next line of the screen if in monitor mode or at the bottom of
the screen if using the E editor,
unless a {\ei GAG} command is in effect.
If not logged-in, notification is given on the next log-in.
The usual formats of the {\ei MAIL} and {\ei SEND} commands are:
\par
\ \ \ {\ei MAIL PRG} {\sl message}\<CR>, \ and \ {\ei SEND PRG} {\sl message}\<CR>
\par
where {\ei PRG} is a programmer name and {\sl message} is the one-line text you want
sent.
If you want to mail more than one line, simply type \ {\tt MAIL PRG<CR>}
as the command and the {\ei MAIL} program will ask you to type the
message, which must now be terminated by \ {\s8 CONTROL><META>}{\ei <LINE>}. In
fact, if you simply type \ {\tt MAIL<CR>}, the system will prompt you with
requests for the name of the recipient, the names of other persons to
receive copies, the subject and finally the message itself with a reminder
to end your message with the usual termination of
\ {\s8 <CONTROL><META>}{\ei <LINE>}. This is the so-called {\sl hand-holding
mode}, which is more verbose and time consuming but may be less
confusing to use.
If you start to mail a one-line message and find that you need more space,
terminate the first line with {\tt <LINE>} instead of {\tt<CR>}
and you can then continue to type a multi-line message.
The normal Line-Editor editing commands may be used to edit the text as you
are writing it and, in fact, you can actually delete a \<CR>\ and back up
into an earlier line. An alternate procedure is, however, usually
superior. This procedure consists of switching to E by typing
\ {\s8 <CONTROL><META>}E \ (instead of the usual
\ {\s8 <CONTROL><META>}{\ei <LINE>}). This
causes a special \ {\ei MAIL}\${\ei E.TXT} \ file to be created
and the text that you have written to be put into this file, with the
command and destination information on one page
and your text on another page. E is entered with the text page
displayed and you can now edit the file (including the command page if
necessary) with all the full power of E. This only works if you are
already typing the message itself. If you are still typing the command
line, the correct command to switch to E is \ {\tt <ALT>}. When the file has
been completed and edited to your satisfaction, type {\s8 <CONTROL>}X{\ei RUN<CR>}.
This exits from E, sends the message and then deletes the file. Should
you exit from E without typing {\s8 <CONTROL>}X{\ei RUN<CR>}, you can reenter
the file with E in the normal fashion and then exit by typing
\ {\s8 <CONTROL>}X{\ei RSYS MAIL<CR>}. The message will be mailed and the file
deleted as before.
The {\ei MAIL} schemes so far described do not preserve a copy of your
outgoing mail. You could, of course, mail a copy to yourself, but an even
simplier way is available. If one has an {\ei OUTGO.MSG} file on one's
normal login directory, a copy of every outgoing mail message is
automatically sent to this file. The {\ei /--OUTGO} switch will override
this provision for any specific message.
The {\ei MAIL} program may be evoked while in E and either the contents of
the Attach Buffer or the entire current page (or selected lines using an argument)
may be mailed, by using the E command
\ {\s8 <CONTROL>}X{\ei MAIL PRG<CR>}. If you want to mention the subject,
you must include a switch ({\ei /SUBJECT}) and the form is
\ {\s8 <CONTROL>}X{\ei MAIL/SUBJECT PRG text of subject}\<cr>.
The {\ei SEND} command is similar to {\ei MAIL} except that it sends the
message directly to the logged-in recipient. Such messages are usually
restricted to single-lines since the recipient may not be in a
position to receive a multi-line message directly. If the designated
recipient is not logged in, the sender is given the option of having the
message mailed.
Mail may be sent to several recipients by appending the necessary number
of {\ei PRG}s separated by commas, or the recipients may be specified in
a distribution file that is referred to by the at sign \ \@. If the
message is to be sent to all users, the asterisk ($\ast$) may be used.
The other {\ei MAIL} related commands are all self-documenting and
can be entered in the {\sl hand-holding} mode by simply typing their names.
\subsectionbegin{The DART program}
{\ei DART} is a program that saves disk files on magnetic tape and
restores files from tape to disk. It is used to make periodic backups of
the disk, and it is available to users who may find it necessary
to restore a file that has been purged or otherwise lost from the
disk. For full details {\ei READ DART}.
\subsectionbegin{Keyboard and Display Mapping}
The {\ei <EXC>\#M} command (with no \<CR>\ and issued from a DD terminal),
where \# \ is a line number assigned to another DD terminal, maps one's
terminal to the designated line, i.e. detaching one's terminal from its
home line and attaching it in parallel with the terminal that is assigned
to the designated line. Alternately, one can use the command {\ei
<ESC>}{\tt [}{\ei PRG}{\tt ]} to map to the line assigned to user {\ei
PRG}. When mapped, anything typed on the mapper's keyboard (with e few
exceptions, such as the {\ei <ESC>M} command) is accepted by the system as
having been typed on the mappee's keyboard. The {\ei <ESC>M} command
returms the mappee's terminal to its home line.
Mapping to another's terminal without the user's knowledge, unless for
good reason, is unethical (like reading papers on someone else's desk) and
it is potentially dangerous since a false key stroke on the mapper's part
can cause a lot of trouble. You should not try mapping until you have
developed a communality of interest with other users that will justify
such action. It is comforting, however, to know that an expert will be
able to observe your display at another terminal when you need help.
It is possible to hide a DD terminal, when necessary, by the {\ei <ESC>H}
command. The normal custom is to resort to hiding only on rare occasions.
The {\ei <BREAK>H} command cancels the hide command.
\subsectionbegin{Miscellaneous System Commands}
A few of the many other system commands that you will soon want to be able
to use might include: the
{\ei UNDELETE} command, with a format {\ei UNDELETE} newfile$←$oldfile,
that works only if the disk space has not yet been reassigned to another
file, so try it right away; the {\ei R SRCCOM} command that allows one to
compare two source programs, and the corresponding, but less useful,
{\ei R BINCOM} for binary files. See the listings in the Appendices to get
an idea of the many commands and services that are available.
\par
\sectionbegin{Document Compilers}
As mentioned earlier, Document Compilers accept source files and produce
output files that can be sent to an output device to produce finished
documents. Three such programs, {\ei POX, PUB} and \TEX, are generally
used. Two dialects of \TEX\ called {\ei MAXTEX} and {\ei ARKTEX} are
favored by many.
Document compilers, by their very nature, are rather hard to
use, at least if you want to do anything at all fancy. One way to get
started is to slavishly copy some document source file as to overall
format and simply replace the text by your own text. For example, if you
like the format of the present manual, simply copy {\ei SUAI.TEX}{\tt [}{\ei TEX,ALS}{\tt]}
into your own area under the desired name for your new file, save page 2,
as is, and replace the text gradually with your own words, and then use
{\ei MAXTEX} as described below.
Files prepared for the {\ei XGP} may be viewed on {\ei DD} terminals by
using the {\ei R XGPSYN<CR>} program which is reasonably well self-documented.
\subsectionbegin{POX}
P{\ei OX} is the oldest of the available document
generators. It generates an {\ei XGP} file for the Xerox Graphics Printer
and will produce justified text using different
fonts. Some people still use {\ei POX} for many of their
document needs.
The principal shortcomings of {\ei POX} are the lack of facilities for the
automatic handling of such matters as Section, Footnote and Equation
numberings and the automatic preparation of a Table of Contents.
Confirmed users of the \TEX\ program fault {\ei POX} for its lack of finesse in
taking care of the many subtle features that are involved in producing
book-quality text.
For more information on {\ei POX} type \ {\tt READ HOW<CR>}. There is an
{\ei XGP} file that can be spooled on the
{\ei XGP} by typing {\tt XSP POX.XGP[UP,REM]<CR>}.
\subsectionbegin{PUB}
P{\ei UB} is an advanced text justifier and page formatter intended primarily
for use by programmers. It can automatically number pages, sections,
figures, footnotes, etc. and can print their numbers in Roman numerals as
well as in digit or letter form. It can generate cross references, tables
of contents, and indexes. Page layout is flexible, and allows multiple
column output. Line formatting includes tabs, underlining, superscripts,
subscripts, centering, and justification. Macros programmed in a
{\ei SAIL}-like string-processing language can generate text to be printed in
the document. The output of the compiler is a file which can be printed
on the terminal, on the line printer, or on the {\ei XGP}.
A complete manual exists for this program and can be consulted on-line
by typing \ {\ei READ PUB}\<CR>. Updates and corrections are available by typing
\ {\ei READ PUB.UPD<CR>}.
\subsectionbegin{TEX}
The \TEX\ program is the most recent of the available document generating
programs. We can do no more than to quote from the introduction in the
Computer Science Dept. Report No. STAN-CS-78-675 entitled {\ei TAU
EPSILON CHI}. by Donald E. Knuth.
{\sl
``This is a handbook about
\TEX, a new typesetting system intended for the creation
of beautiful books---and especially for books that contain a lot of
mathematics. By preparing a manuscript in \TEX\ format, you will be
telling a computer exactly how the manuscript is to be transformed into
pages whose typographic quality is comparable to that of the world's
finest printers; yet you won't need to do much more work than would be
involved if you were simply typing the manuscript on an ordinary
typewriter. In fact, your total work will probably be significantly less,
if you consider the time it ordinarily takes to revise a typewritten manuscript,
since computer text files are so easy to change and to reprocess.''}
If you cannot get a copy of this report you might buy a copy of {\ei TEX} and
{\ei METAFONT} by D.E.Knuth, Digital Press (1979), available at the bookstore.
As a last resort you might type \ {\ei READ MANUAL.TEX}{\tt [}{\ei TEX,DEK}{\tt]}\ to the
monitor and try to read the source file from which the
{\ei TAU EPSILON CHI} report was prepared.
Two versions of \TEX\ are currently available. The older version, called by typing
{\tt R XGPTEX<CR>}, prepares an output file for printing on the {\ei XGP},
and the newer version, called by typing {\tt R TEX<CR>}, prepares an output
file for printing on the {\ei DOVER}.
Both programs respond with
an \ {\tt *}, and they then expect a reply of \ \\{\tt input FILNAM<CR>}, where
{\ei FILNAM} is a file with the extension of {\ei TEX}
that contains text and all of the necessary instructions expected by \TEX.
The \ \\ \ before the word \ {\tt input} \ tells \TEX\ that this is the symbol
used in the manuscript as an escape symbol before commands. Actually any
infrequently used keyboard character could be used, but the \ \\ \ is the most
common. It is used in some of the auxilary input files that you may
find convenient, such as the file
{\ei BASIC.TEX}{\tt [1,3]}, which will load a basic set of commands. If you want to
use this {\ei BASIC.TEX} file, the first line in your file should read:
\ \\{\tt input basic}.
Upon completion of the compilation, the necessary printing
command is loaded into the monitor input buffer, only awaiting your typing
of a terminating \<CR>\ before execution.
M{\ei AXTEX} and A{\ei RKTEX}
Several dialects of \TEX\ are being developed for the less-than-expert
hacker. One preloaded version, called {\ei MAXTEX}, has
information on 42 fonts (named abc...z ABC...L<>\@;) and uses macros to
take care of such matters as: handling of chapters, sections, etc.;
automatic table of contents (as well as plates and figures); several
styles of pages, with different headings; comments, annotations,
footnotes; paragraphing details (enumerate, itemize, display, indent,
etc.). Otherwise, it is used just as the ordinary \TEX\ in the system.
This manual was prepared using {\ei MAXTEX}.
M{\ei AXTEX} is called by typing \ {\tt R MAXTEX<CR>} to the monitor.
There are three files, {\ei KERMAC.TEX, PAPMAC.TEX}
and {\ei LETMAC.TEX}, that take the place of {\ei BASIC.TEX}
and provide a more elaborate set of macros for special features.
Documentation is somewhat frugal at the moment; {\ei READ MAXTEX} for more
details. Also see the {\ei MAXTEX} page in {\ei HOW.ALS}{\tt[}{\ei UP,DOC}{\tt ]}.
A{\ei RKTEX} is a macro package for use with the \TEX\ processor. This package
supports output of a variety of styles and formats. These formats include
straight text with page numbers in one of several locations or without
them, letter with Stanford letterheads, multi-column output, and book
format output. The book format is the most developed format of this
series and it supports chapters and sections that automatically count.
Support for tables of contents and indexes is being improved at the time
of this writing. For more information, {\ei READ ARKTEX}.
A version of \TEX\ that preloads the fonts used by {\ei ARKTEX} is available as
{\ei ARKTEX}. To use it, type {\tt R ARKTEX} instead of {\tt R TEX}. Your
document should begin with \\input {\ei ARKTEX} to obtain the latest
version of the macro package.
\sectionbegin{Interfacing with other Systems}
The {\ei SUAI} computer is linked to the {\ei ARPA} network,
a facility organized by the Advanced Research Projects
Agency of the Department of Defense to connect computers at various research
centers funded by {\ei ARPA}, allowing people at one host to use the resources of
another host. The device which provides the interface between our computer
and the network, called an {\ei IMP} (Interface Message Processor), can be used by
user programs like any other I/O device. Two main system programs are
provided for connecting to other computers by console commands: the user
{\ei TELNET} program and the File Transfer Protocol program ({\ei FTP}). The former
allows you to use your terminal as if it were a terminal of the remote host
computer; the latter provides high-speed transmission of data between hosts.
For more information \ {\ei READ TELNET} and \ {\ei READ FTP}.
A link is also in the process of being developed with the \ {\ei ETHERNET}. For
the current file transfer protocol \ {\ei READ EFTP}. Other reports are sure
to be available in the near future, so ask someone about this matter.
\sectionbegin{UUOs and the UUO Manual}
UUOs are monitor calls that make use of certain machine instruction codes
that would otherwise be unused or illegal. Such calls are primarily of
interest to those persons who program in Assembly languages, although it
behooves all programmers, particularly those who use {\ei SAIL} (or any
other language that permits machine-code insertions) to at least know of
the existence of such calls and of the UUO manual. This (276 page) manual is
available on-line by typing {\ei READ UUO<CR>}, and in hard copy as
Stanford Artificial Intelligence Laboratory Operating Note 55.5. Please
do not try to get a copy unless you really need it and do not
under any circumstances try spooling it.
Some of the many matters handled by UUOs have to do with establishing
input and output channels, setting up buffer rings, opening files,
initializing input and output devices, establishing shared upper-memory
segments so that more than one user can share a program or program
segment, sending and receiving inter-job messages, the getting and setting
of job information, operating the Dialer and operating video and audio
switches.
\par\vfill\eject
\titlepage
\appsectionbegin{Appendices}
\appsubsectionbeginb{\ctrcol{Appendix C}}{C. \ Monitor Commands}
The following Monitor Commands are available on {\ei SU-AI WAITS 9.12/d}
as assembled on 1/13/81. They may be truncated as shown by capitals.
This list does not include programs that are run by an {\ei R FILNAM}
command (see Appendix R).
For a similar list with longer explanations {\ei READ CMDNAM<CR>}.
For more information try {\ei HELP <command name><CR>} and if no information is
available type {\ei READ MONCOM<CR>}. The Index is on page 144 of that file.\par
$$\vbox{\baselineskip12pt\te
\halign{#\ \ \hfill⊗#\ \ \hfill⊗#\ \ \hfill⊗#\hfill\cr
\@ ⊗cross-reference list with ATSIGN⊗DFind⊗find word in dictionary\cr
ACcess⊗access user file directory⊗DIAl⊗talk to comp. by phone\cr
ADvance⊗advance mag tape⊗DIrectory⊗type file statistics\cr
ALias⊗set disk PPN⊗DO⊗exec. commands from file\cr
Assign⊗assign device to job⊗DOVer⊗print file on Dover\cr
ATtach⊗attach job to terminal⊗DQavg⊗type disk queue average\cr
BACkspace⊗back mag tape⊗DRd⊗run directory editor\cr
BATch⊗schedule delayed execution⊗DSksiz⊗report disk use and quota\cr
BOok⊗book mode edit with E⊗DTn⊗DM simulator TELNET\cr
CAncel⊗delete reminders⊗DUmp⊗dump files to mag tape\cr
CContinue⊗cont. job, term. in mon. mode⊗E⊗examine core image\cr
CDetach⊗cont. job, detach terminal⊗EDit⊗edit file with SOS\cr
CEtv⊗create file with E⊗EFInd⊗find string (E-format)\cr
CFork⊗cont. job, detach term., new job⊗EFTp⊗transfer file over EtherNet\cr
CKmail⊗see if user has new mail⊗ELfqfix⊗fix jammed ELF queue lock\cr
CLruwp⊗clear upper seg, write protect⊗EOt⊗mag tape positioning\cr
COMpile⊗compile program⊗ERead⊗E edit file readonly mode\cr
CONtinue⊗cont. job, term. in user mode⊗ETv⊗edit file with E\cr
COPy⊗copy files⊗EVent⊗list event in system messages\cr
Core⊗set or type core size⊗EXecute⊗compile, load, and run prog.\cr
CREAte⊗create file with SOS⊗FIles⊗type status of files in use\cr
CREF⊗cross-reference list with CREF⊗FIND⊗find char. string in a file\cr
CStart⊗start job, term. in mon. mode⊗FINGer⊗type name and loc. of users\cr
DAytime⊗type time of day or job times⊗Finish⊗close and release device\cr
DDt⊗enter DDT or RAID⊗FIXimlac⊗init. IMLAC terminal\cr
DE⊗deposit into core image⊗FLush⊗clear term. buffers\cr
Deassign⊗deassign device from job⊗FOrk⊗detach, make new job\cr
DEBug⊗compile, load prog. start debug⊗FTp⊗ARPA net file transfer\cr
DECide⊗ask computer for advice⊗Get⊗load core from file\cr
DELete⊗delete files⊗GRipe⊗report system bug\cr
DETach⊗detach job from term.⊗HAlt⊗stop job ($\up$C)\cr}}$$
\par\vfill\eject
$$\vbox{\baselineskip12pt\te
\halign{#\ \ \hfill⊗#\ \ \hfill⊗#\ \ \hfill⊗#\hfill\cr
HELLo⊗type name of curr. mon. version⊗RESEt⊗reset a job\cr
HELP⊗explain system program⊗RESOurces⊗type available resources\cr
HOSt⊗find who given net host is⊗RESTore⊗restore file from tape\cr
HOT⊗read AP or NYT news⊗RETry⊗try again to send queued mail\cr
KAttach⊗kill job, att. another⊗REWind⊗rewind mag tape\cr
KIll⊗kill another job⊗RSl⊗reserve service level\cr
Kjob⊗kill this job⊗RUn⊗run program from DMP file\cr
KLog⊗kill this job, Login⊗SAve⊗save core image in file\cr
LAter⊗run prog. later⊗SD⊗SUPDUP to some net host\cr
LISP⊗run LISP⊗SENd⊗send message to user's term.\cr
LIST⊗list file on line printer⊗SETUwp⊗set upper seg. write prot.\cr
LOAd⊗compile and load program⊗SLevel⊗type asigned service level\cr
LOCate⊗loc. dump no. for file⊗SPool⊗request line printer listing\cr
Login⊗make a new job⊗SSave⊗save two-seg. core image\cr
LOGOut⊗kill this job⊗Start⊗start job, term. in user mode\cr
MAIl⊗send mail to a user⊗SUpdup/SD⊗run SUPDUP program\cr
MAKe⊗create file with TECO⊗SYstat⊗type system status\cr
NOEdit⊗no edit key on terminal⊗TAlk⊗talk to another terminal\cr
NS⊗read AP or NYT stories⊗TECo⊗edit file with TECO\cr
OFind⊗find string per OPTION.TXT⊗TELnet/TN⊗talk to ARPAnet computer\cr
OTN⊗old TELNET protocol⊗TESt⊗run SYS:TEST.DMP\cr
PDetach⊗detach job, make it phantom⊗TIme⊗type runtime for job or system\cr
PJob⊗type job using device or term.⊗TList⊗list files on dump tape\cr
PLAn⊗create plan file⊗TN⊗TELNET to some net host\cr
PLIst⊗list PUMPKIN requests⊗TRAnsfer⊗copy files, delete source\cr
POx⊗compile doc. with POX⊗TRY⊗compile, load with debug., run\cr
PPpn⊗print PPN of job⊗TTy⊗set terminal parameters\cr
PREpare⊗compile, load with debug.⊗TUrkey⊗who last used DART tape?\cr
PROCess⊗execute command string⊗TYpe⊗type a file\cr
PROVe⊗run SYS:PROVE⊗UDpufd⊗modify UDP file directory\cr
PTy⊗type term. attached to job⊗UFd⊗modify DSK file directory\cr
PUB⊗compile doc. with PUB⊗UNDelete⊗try to recover deleted file\cr
PUMpkin⊗ask for off-line restore⊗UNPRotect⊗reduce protection of a file\cr
Qspool⊗type spooler queues⊗UNPUmp⊗undo PUMPKIN requests\cr
R⊗run {\tt [1,3]} program⊗UNReap⊗undo REAP requests\cr
RCv⊗receive mail for user⊗UNSpool⊗delete spooler request\cr
READ⊗read system doc. with E⊗VERify⊗run SYS:VERIFY\cr
REAP⊗mark files for dump and del.⊗WHEN⊗see when PRG logged out\cr
REASsign⊗reassign device⊗WHEre⊗type job info for PPN\cr
REEnter⊗start prog. at reenter addr.⊗Who⊗display system status\cr
REMind⊗create reminder message⊗XGplist⊗list file on XGP\cr
REName⊗rename file or change prot.⊗XPart⊗prepare file part for XGP spool\cr
RER⊗run prog. from SYS, give it text⊗XSpool⊗request XGP listing\cr
RERUn⊗run prog. from DSK, give it text⊗Zero⊗clear DTA, UDP, or DSK dir.\cr}}$$
\par\vfill\eject
\titlepage
\appsubsectionbeginb{\ctrcol{Appendix H}}{H. \ HELP resum\'es, Services, and Referrals}
\vfill
\vbox{\hbox
{H{\ei ELP} resum\'es, services and {\ei R E; FILNAM} references are
available for:}
\ctrline{\vbox{\baselineskip10pt\ei
\halign{#\ \ \hfill⊗#\ \ \hfill⊗#\ \ \hfill⊗#\ \ \hfill
⊗#\ \ \hfill⊗#\ \ \hfill⊗#\ \ \hfill⊗#\cr
\ \cr
A2E⊗COMPIL⊗ESCAPE⊗HYRS⊗MAIL⊗PDLOV⊗SLDEC⊗TVFONT\cr
ACCESS⊗COPY⊗ETEACH⊗IIIKEY⊗MAP⊗PFORM⊗SLIBRY⊗TYPE\cr
ACRONY⊗CRDIR⊗ETV⊗IIIPOX⊗MARGIE⊗PIX⊗SLR1⊗TYPREL\cr
ADDINF⊗CRE⊗EVENT⊗ILISP⊗MARS⊗PK⊗SNAIL⊗UDP\cr
ADS⊗CREF⊗EXAMPL⊗IMLAC⊗MAXTEX⊗PLAN⊗SNOBOL⊗UDPUFD\cr
ADVENT⊗CROSS⊗EXERCI⊗IMLKEY⊗MBOX⊗PLNR⊗SORT⊗UFC\cr
AIM248⊗CRYPT⊗EXT⊗IMPSTA⊗MENTOR⊗POLL⊗SOS⊗UFD\cr
AIMDOC⊗CRYPTO⊗F⊗INDENT⊗MERGE⊗PONY⊗SOUP⊗UNDELE\cr
AIQUAL⊗CSD⊗FAIL⊗INDEX⊗METAFO⊗POX⊗SPASM⊗UNXGP\cr
AIWORD⊗CSET⊗FASBOL⊗INFO⊗MF⊗POXOLD⊗SPEED⊗USEM11\cr
AL⊗D⊗FCOPY⊗IOSAIL⊗MICROS⊗PPK⊗SPELL⊗USEMUS\cr
ALIAS⊗DART⊗FCROX⊗JAMLIB⊗MIDAS⊗PPSAV⊗SPIDER⊗USERGD\cr
ARKTEX⊗DDFONT⊗FELT⊗JARGON⊗MIX⊗PRLISP⊗SPINDL⊗UUO\cr
ARM⊗DDHACK⊗FILDMP⊗KALAH⊗MLISP⊗PROGS⊗SPOOL⊗VARIAN\cr
ARPA⊗DDKEY⊗FILE⊗KBDMAP⊗MLISP2⊗PROVE⊗SPSUB⊗VERIFY\cr
ARPANE⊗DDT⊗FILES⊗KIMKEY⊗MONCOM⊗PRUNE⊗SRCCHK⊗VISREV\cr
ASSIGN⊗DFTP⊗FILEX⊗KJOB⊗MSORT⊗PTY⊗SRCCOM⊗WHEN\cr
ATSIGN⊗DFTPCH⊗FIND⊗KL10⊗MTRX⊗PTYJOB⊗SSORT⊗WHERE\cr
ATTACH⊗DHACKS⊗FINDAF⊗KLDIF⊗MUSIC⊗PUB⊗STICKY⊗WHO\cr
AUTISM⊗DIABLO⊗FINGER⊗KRL⊗NCOMPL⊗PUBMAC⊗SUDS⊗WHOLIN\cr
AUTOLO⊗DIAL⊗FIXPNT⊗KWIC⊗NET⊗PURGE⊗SUPDUP⊗WHOPHN\cr
BAIL⊗DIALNE⊗FLOW⊗L⊗NETDOC⊗PURGER⊗SUTIP⊗WILD\cr
BATCH⊗DIET⊗FMUNGE⊗LAKOFF⊗NETWRK⊗Q⊗SWR⊗WISE\cr
BBOARD⊗DIR⊗FNTCHR⊗LATER⊗NEWESC⊗RADIO⊗SWRFRM⊗WL\cr
BCOMPL⊗DIRED⊗FOL⊗LAWS⊗NEWIO⊗RAID⊗SYMBOL⊗XGP\cr
BCPL⊗DISPLA⊗FOLMRG⊗LCFMAN⊗NEWLSP⊗RAIDUP⊗SYSTEM⊗XGPDVI\cr
BIBOP⊗DISPLY⊗FOLPRM⊗LEHRER⊗NEWPRV⊗RCV⊗TALK⊗XGPSYG\cr
BINCOM⊗DLNFTP⊗FONT⊗LEIBNZ⊗NEWS⊗RECAUX⊗TAPE⊗XGPSYN\cr
BKG⊗DLNSFT⊗FREEFO⊗LETTER⊗NOEDIT⊗REDUCE⊗TEACH⊗XGPTYP\cr
BLAISE⊗DM⊗FSCALE⊗LIFE⊗NOTICE⊗REMIND⊗TECH2⊗XIP\cr
BLISS⊗DMACS⊗FTP⊗LIFXGP⊗NS⊗RESOLV⊗TECO⊗XLATE\cr
BLOOD⊗DMKEY⊗FUDGE2⊗LINGO⊗OPOX⊗RETRY⊗TECORD⊗XPART\cr
BLOOP⊗DO⊗GENRAL⊗LINK⊗OPTION⊗REVED⊗TELNET⊗XSPOOL\cr
BOOK⊗DOC⊗GEOMED⊗LINK10⊗OTLSER⊗RIVEST⊗TEMPER⊗YUMMY\cr
BUNDLE⊗DOVER⊗GO⊗LISP⊗P⊗RLISP⊗TENDMP⊗YUMYUM\cr
BUREAU⊗DRAW⊗GPRINT⊗LISP16⊗P2P⊗RSL⊗TENGWR⊗Z80\cr
CANCEL⊗DRD⊗GRFX⊗LIST⊗PACK⊗RUNES⊗TERMS⊗ZERO\cr
CANON⊗DSKSIZ⊗GRIPE⊗LISTS⊗PAM⊗SAIL⊗TEST2⊗370\cr
CARDS⊗DTLNET⊗GRUMP⊗LOA⊗PAS⊗SAVE⊗TEX⊗6500\cr
CCLOCK⊗DTYPE⊗GUEST⊗LOADAV⊗PASCAL⊗SCHEME⊗TFX⊗6800\cr
CGOL⊗DVI⊗HADAM⊗LOGIN⊗PASDEF⊗SCIP⊗TIMES⊗68KASM\cr
CHESS⊗DVIXGP⊗HAR1⊗LOGOUT⊗PASDOC⊗SCRIBE⊗TIP⊗6TO10\cr
CHRMAC⊗E⊗HELIB⊗LRNMU1⊗PASHLP⊗SD⊗TIPUG⊗8080\cr
CKMAIL⊗ECL⊗HELP⊗LRNMUS⊗PASINS⊗SEND⊗TMPCOR\cr
CKSUM⊗EDFONT⊗HELPER⊗LSPARC⊗PASMAN⊗SFA⊗TOSCIP\cr
CMDNAM⊗EDITOR⊗HOST⊗MACLIS⊗PASNOT⊗SIMPLE⊗TTY\cr
CNVR⊗EFIND⊗HOW⊗MACLSP⊗PC⊗SIX12⊗TTYCMD\cr
CODE⊗EFTP⊗HOWBIG⊗MACROS⊗PCHECK⊗SIXSYS⊗TTYESC\cr
COLIST⊗EFUN⊗HTSWTS⊗MACSYM⊗PCP⊗SL⊗TTYJAM\cr
COMBIN⊗EMACS⊗HUNK⊗MAGIC⊗PCREF⊗SLAC⊗TTYSET\cr}}}}
\par\eject
\titlepage
\appsubsectionbeginb{\ctrcol{Appendix R}}{R. \ DMP Files on the [1,3] Directory}
The following {\ei DMP} files are on the {\tt [1,3]} directory and may be
run by an {\ei R FILNAM<CR>}\ command. If the appropriate {\ei HELP}
documentation is unavailable, many of these programs are still easy to used
as they may contain self documentation or they may request the
necessary input data interactively.
$$\vbox{\baselineskip10pt\ei
\halign{#\ \hfill \ ⊗#\ \hfill \ ⊗#\ \hfill \ ⊗#\ \hfill
\ ⊗#\ \hfill \ ⊗#\ \hfill \ ⊗#\ \hfill \ ⊗#\ \hfill⊗#\cr
\ \cr
A⊗COMBIN⊗DVIXGP⊗FSIM⊗MACLSP⊗PAS⊗READCN⊗SYSDWN⊗VM22\cr
ACRONY⊗COMPLR⊗E⊗FSIM2⊗MACRO⊗PAS2⊗REDUCE⊗TALK⊗VMR\cr
ACRROD⊗CONVRT⊗EC⊗FTP⊗MAGGOT⊗PASCAL⊗RELFLY⊗TAPE⊗VNEW\cr
ADAM⊗COOL⊗ECL⊗FUDGE2⊗MAIL⊗PASOLD⊗REPENT⊗TEC⊗VPROVE\cr
ADH⊗COPY⊗EDFONT⊗FUNC⊗MAINSA⊗PC⊗RHY⊗TECH2⊗VTEST\cr
ADS⊗CPRINT⊗EDIT⊗GAL⊗MAP⊗PCP⊗RMS⊗TECO⊗VWOLF\cr
ADUDP⊗CRAM⊗EFIND⊗GEOMED⊗MAXTEX⊗PCPLOT⊗ROUTE⊗TELNET⊗WAIT\cr
ADVENT⊗CRDIR⊗EFTP⊗GLOB⊗META⊗PCREF⊗RPG⊗TEMPER⊗WAVES\cr
AFPIX⊗CRE⊗ENCODE⊗GO⊗METAFO⊗PDRILL⊗RSEXEC⊗TENDMP⊗WHEN\cr
AID⊗CREF⊗ERAID⊗GOGAME⊗METER⊗PEDIT⊗RSL⊗TENGWR⊗WHERE\cr
AKRNIM⊗CROSS⊗ESPERA⊗GREEN⊗MF⊗PERUSE⊗RUNOFF⊗TEST⊗WHO\cr
AL⊗CRYPT⊗EX⊗GRHOCK⊗MFRPVC⊗PETAL⊗RYGAME⊗TEST2⊗WILD\cr
ALIGN⊗CRYPTO⊗EXB⊗GRNJOB⊗MFRSYN⊗PFORM⊗S⊗TEX⊗WISE\cr
AMPSCL⊗CSTART⊗EXBFTP⊗HARRY⊗MICRO⊗PICTUR⊗S1LPT⊗TEXDOC⊗WL\cr
ARKTEX⊗D⊗EXHALE⊗HAUNT⊗MICROS⊗PIX⊗SAIL⊗TFDRD⊗WLA\cr
ARMDPY⊗DA⊗EXL⊗HELP⊗MIDAS⊗PIXUR⊗SAMCMP⊗TFTOPL⊗WLABS\cr
ATSIGN⊗DART⊗EXMRG⊗HG⊗MIXSCR⊗PK⊗SAMPLA⊗TFXGEN⊗WLUMAP\cr
B⊗DAZZLE⊗EXR⊗HOST⊗MIXSND⊗PLISP⊗SCIP⊗TFXPR⊗WM\cr
BASIC⊗DBCK⊗EXS⊗HOSTAB⊗MLISP⊗PLOT⊗SCORE⊗TIMES⊗WOMBAT\cr
BCOMPL⊗DCHESS⊗F⊗HOSTAT⊗MLISP2⊗PLTOTF⊗SCRIBE⊗TINGLE⊗X\cr
BIGMF⊗DCSTAT⊗F40⊗HYPNO⊗MLISPC⊗PLTPRE⊗SEGMEN⊗TJ6PUB⊗XAP\cr
BILLBD⊗DDFONT⊗FAIL⊗IC⊗MMFOL⊗PMFW⊗SHIT⊗TMPCOR⊗XCOMPL\cr
BINCOM⊗DDHACK⊗FAILSA⊗IIIGO⊗MP⊗POINTY⊗SHUFFL⊗TSNAIL⊗XGPDVI\cr
BLAISE⊗DDJOB⊗FASBOL⊗IL⊗MPV⊗POLL⊗SIMPLE⊗TSTJOB⊗XGPJOB\cr
BLIS10⊗DDT⊗FASM⊗IMPSTA⊗MS⊗POX⊗SLAC⊗TTEX⊗XGPLOT\cr
BLISS⊗DDTLSP⊗FASM2⊗INDEX⊗MSORT⊗PPK⊗SLR1⊗TTYSET⊗XGPQUE\cr
BLOOP⊗DDUSE⊗FCOPY⊗INFO⊗MTRX⊗PPL⊗SNAIL⊗TVFONT⊗XGPSYG\cr
BLTST⊗DEDIT⊗FCROX⊗INHALE⊗MUS10⊗PPSAV⊗SOB⊗TYPJOB⊗XGPSYN\cr
BRAVO⊗DFTP⊗FILDMP⊗INR⊗MUS11⊗PR⊗SOLO⊗U⊗XGPTYP\cr
BRKSND⊗DIABLO⊗FILEX⊗JMCWC1⊗MUSIC⊗PREPOX⊗SOS⊗UDPUSE⊗XIP\cr
BUNDLE⊗DIAL⊗FIND⊗JMGSYN⊗MYMF⊗PRESS⊗SPASM⊗UEDDT⊗XLATE\cr
BUREAU⊗DIET⊗FINDAF⊗JOTTO⊗NAME⊗PRIV⊗SPELL⊗UNDOC⊗XLD\cr
BUZZ⊗DIGTIZ⊗FINE⊗JUST⊗NCOMPL⊗PRN⊗SPIDER⊗UNPACK⊗XLISP\cr
CAL⊗DIRED⊗FINGER⊗KAFFEE⊗NETWHO⊗PROFIL⊗SPINDL⊗UNPOX⊗XM\cr
CALLIT⊗DIZZY⊗FIRWRK⊗KALAH⊗NEWMUS⊗PROVE⊗SPOOL⊗UNXGP⊗XPART\cr
CANCEL⊗DLNFTP⊗FIXIM1⊗KRL⊗NEWS⊗PRUNE⊗SQUEEZ⊗V⊗XS\cr
CANTOR⊗DLNSTA⊗FIXIML⊗L⊗NLISP⊗PSEG⊗SRCCHK⊗VAR2P⊗XSV\cr
CCLOCK⊗DM⊗FLTAPP⊗LESCAL⊗OPUMA⊗PTEX⊗SRCCOM⊗VARIAN⊗YELO\cr
CHATER⊗DMCHK⊗FMUNGE⊗LIFE⊗ORACLE⊗PTY⊗SSORT⊗VARL⊗YH\cr
CHECKE⊗DO⊗FNTCHR⊗LIFXGP⊗P⊗PTYJOB⊗STEREO⊗VCLIP⊗ZERO\cr
CHRFNT⊗DOCTOR⊗FOL⊗LINK⊗PACK⊗PUB⊗SUPDUP⊗VCWP⊗11TTY\cr
CHRMAC⊗DOVER⊗FOLISP⊗LINS⊗PACKMS⊗PUB2⊗SURVEY⊗VERCH⊗1LISP\cr
CHRTST⊗DPYHAX⊗FONT⊗LISP⊗PAGE⊗PUMA⊗SW⊗VERIFY⊗3DFLY\cr
CINEMA⊗DRAW⊗FONTCA⊗LOADAV⊗PAL⊗Q⊗SWR⊗VIDXGQ⊗6TO10\cr
CKSUM⊗DRW⊗FRAID⊗LOADER⊗PALX⊗RAID⊗SYNDMP⊗VLISP\cr
COLIST⊗DTLNET⊗FREEFO⊗LOGRUN⊗PAM⊗RCV⊗SYNJOB⊗VM\cr
COMBI⊗DTN⊗FSCALE⊗LSPMON⊗PARRY2⊗RDPY⊗SYNTH⊗VM15\cr}}$$
\par\vfill\eject
\tableofcontents{1}
\bye
\bye